Version Description
- Tweak: Added a warning if the access token could not be decrypted for use in API requests.
- Tweak: Added a fallback method to reach the Instagram API if a cURL error 6 error is detected.
- Fix: Fixed an issue with connecting an additional business account if the first account listed was not selected.
Download this release
Release Info
Developer | smashballoon |
Plugin | Instagram Feed |
Version | 2.9.8 |
Comparing to | |
See all releases |
Code changes from version 2.9.7 to 2.9.8
- README.txt +6 -1
- css/sb-instagram-admin.css +2 -2
- inc/admin/actions.php +1 -0
- inc/admin/class-sbi-account-connector.php +2 -2
- inc/admin/main.php +44 -3
- inc/class-sb-instagram-api-connect.php +75 -16
- inc/class-sb-instagram-feed.php +10 -1
- inc/class-sb-instagram-posts-manager.php +1 -0
- inc/class-sb-instagram-settings.php +0 -2
- inc/class-sb-instagram-token-refresher.php +1 -1
- instagram-feed.php +2 -2
README.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: smashballoon, craig-at-smash-balloon
|
|
3 |
Tags: Instagram, Instagram feed, Instagram photos, Instagram widget, Instagram gallery
|
4 |
Requires at least: 3.4
|
5 |
Tested up to: 5.8
|
6 |
-
Stable tag: 2.9.
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -331,6 +331,11 @@ We understand that sometimes you need help, have issues or just have questions.
|
|
331 |
* Plus more customization options added all the time!
|
332 |
|
333 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
334 |
= 2.9.7 =
|
335 |
* Tweak: A prompt will now be displayed if the ability to save settings requires a page refresh.
|
336 |
* Fix: Fixed several accessibility issues in the admin area.
|
3 |
Tags: Instagram, Instagram feed, Instagram photos, Instagram widget, Instagram gallery
|
4 |
Requires at least: 3.4
|
5 |
Tested up to: 5.8
|
6 |
+
Stable tag: 2.9.8
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
331 |
* Plus more customization options added all the time!
|
332 |
|
333 |
== Changelog ==
|
334 |
+
= 2.9.8 =
|
335 |
+
* Tweak: Added a warning if the access token could not be decrypted for use in API requests.
|
336 |
+
* Tweak: Added a fallback method to reach the Instagram API if a cURL error 6 error is detected.
|
337 |
+
* Fix: Fixed an issue with connecting an additional business account if the first account listed was not selected.
|
338 |
+
|
339 |
= 2.9.7 =
|
340 |
* Tweak: A prompt will now be displayed if the ability to save settings requires a page refresh.
|
341 |
* Fix: Fixed several accessibility issues in the admin area.
|
css/sb-instagram-admin.css
CHANGED
@@ -768,7 +768,7 @@
|
|
768 |
font-size: 12px;
|
769 |
padding: 4px 4px 4px 8px;
|
770 |
vertical-align: top;
|
771 |
-
margin:
|
772 |
border-radius: 4px;
|
773 |
|
774 |
background: #fdf4e5;
|
@@ -2869,4 +2869,4 @@
|
|
2869 |
padding: 0 24%;
|
2870 |
font-size: 16px;
|
2871 |
margin-bottom: 0px;
|
2872 |
-
}
|
768 |
font-size: 12px;
|
769 |
padding: 4px 4px 4px 8px;
|
770 |
vertical-align: top;
|
771 |
+
margin: 6px 5px 0 0;
|
772 |
border-radius: 4px;
|
773 |
|
774 |
background: #fdf4e5;
|
2869 |
padding: 0 24%;
|
2870 |
font-size: 16px;
|
2871 |
margin-bottom: 0px;
|
2872 |
+
}
|
inc/admin/actions.php
CHANGED
@@ -147,6 +147,7 @@ function sbi_connect_business_accounts() {
|
|
147 |
}
|
148 |
|
149 |
$raw_accounts = ! empty( $_POST['accounts'] ) ? json_decode( wp_unslash( $_POST['accounts'] ), true ) : array();
|
|
|
150 |
$access_token = ! empty( $raw_accounts[0] ) ? sbi_sanitize_alphanumeric_and_equals( $raw_accounts[0]['access_token'] ) : '';
|
151 |
if ( empty( $access_token ) ) {
|
152 |
wp_send_json_success( 'No access token' );
|
147 |
}
|
148 |
|
149 |
$raw_accounts = ! empty( $_POST['accounts'] ) ? json_decode( wp_unslash( $_POST['accounts'] ), true ) : array();
|
150 |
+
$raw_accounts = array_values( $raw_accounts );
|
151 |
$access_token = ! empty( $raw_accounts[0] ) ? sbi_sanitize_alphanumeric_and_equals( $raw_accounts[0]['access_token'] ) : '';
|
152 |
if ( empty( $access_token ) ) {
|
153 |
wp_send_json_success( 'No access token' );
|
inc/admin/class-sbi-account-connector.php
CHANGED
@@ -98,14 +98,14 @@ class SBI_Account_Connector {
|
|
98 |
}
|
99 |
|
100 |
$connection = new SB_Instagram_API_Connect( $data, 'header', array() );
|
101 |
-
$connection->
|
102 |
|
103 |
if ( ! $connection->is_wp_error() && ! $connection->is_instagram_error() ) {
|
104 |
$new_data = $connection->get_data();
|
105 |
|
106 |
if ( $data['type'] === 'basic' ) {
|
107 |
$basic_account_access_token_connect = new SB_Instagram_API_Connect( $data, 'access_token', array() );
|
108 |
-
$basic_account_access_token_connect->
|
109 |
$token_data = $basic_account_access_token_connect->get_data();
|
110 |
|
111 |
if ( ! $basic_account_access_token_connect->is_wp_error() && ! $basic_account_access_token_connect->is_instagram_error() ) {
|
98 |
}
|
99 |
|
100 |
$connection = new SB_Instagram_API_Connect( $data, 'header', array() );
|
101 |
+
$connection->wp_http_connect();
|
102 |
|
103 |
if ( ! $connection->is_wp_error() && ! $connection->is_instagram_error() ) {
|
104 |
$new_data = $connection->get_data();
|
105 |
|
106 |
if ( $data['type'] === 'basic' ) {
|
107 |
$basic_account_access_token_connect = new SB_Instagram_API_Connect( $data, 'access_token', array() );
|
108 |
+
$basic_account_access_token_connect->wp_http_connect();
|
109 |
$token_data = $basic_account_access_token_connect->get_data();
|
110 |
|
111 |
if ( ! $basic_account_access_token_connect->is_wp_error() && ! $basic_account_access_token_connect->is_instagram_error() ) {
|
inc/admin/main.php
CHANGED
@@ -903,10 +903,37 @@ function sb_instagram_settings_page() {
|
|
903 |
SBI_Account_Connector::maybe_launch_modals( $sb_instagram_user_id );
|
904 |
if ( isset( $_POST['sbi_connect_username'] ) ) {
|
905 |
$new_user_name = sanitize_text_field( wp_unslash( $_POST['sbi_connect_username'] ) );
|
906 |
-
$new_account_details = json_decode(
|
907 |
array_map( 'sanitize_text_field', $new_account_details );
|
908 |
|
909 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
910 |
$connected_accounts = $updated_options['connected_accounts'];
|
911 |
$user_feed_ids = $updated_options['sb_instagram_user_id'];
|
912 |
}
|
@@ -973,7 +1000,7 @@ function sb_instagram_settings_page() {
|
|
973 |
else :
|
974 |
$doing_account_error_messages = count( $connected_accounts ) > 1;
|
975 |
global $sb_instagram_posts_manager;
|
976 |
-
|
977 |
?>
|
978 |
<?php
|
979 |
foreach ( $connected_accounts as $account ) :
|
@@ -1029,6 +1056,7 @@ function sb_instagram_settings_page() {
|
|
1029 |
<span><i class="fa fa-exclamation-circle" aria-hidden="true"></i><?php esc_html_e( 'Feeds using this account might not be updating due to an error. Try viewing these feeds after reconnecting the account and saving your settings below.', 'instagram-feed' ); ?></span>
|
1030 |
</div>
|
1031 |
<?php endif; ?>
|
|
|
1032 |
<div class="sbi_ca_alert">
|
1033 |
<span><?php esc_html_e( 'The Access Token for this account is expired or invalid. Click the button above to attempt to renew it.', 'instagram-feed' ); ?></span>
|
1034 |
</div>
|
@@ -1065,6 +1093,19 @@ function sb_instagram_settings_page() {
|
|
1065 |
</div>
|
1066 |
<p class="sbi_tooltip sbi-more-info" style="display: none; width: 100%; box-sizing: border-box;"><?php echo wp_kses_post( sprintf( __( 'This account is a "private" account on Instagram. It needs to be manually reconnected every 60 days. %1$sChange this account to be "public"%2$s to have access tokens that are automatically refreshed.', 'instagram-feed' ), '<a href="https://help.instagram.com/116024195217477/In" target="_blank">', '</a>' ) ); ?></p>
|
1067 |
<?php endif; ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1068 |
|
1069 |
</div>
|
1070 |
|
903 |
SBI_Account_Connector::maybe_launch_modals( $sb_instagram_user_id );
|
904 |
if ( isset( $_POST['sbi_connect_username'] ) ) {
|
905 |
$new_user_name = sanitize_text_field( wp_unslash( $_POST['sbi_connect_username'] ) );
|
906 |
+
$new_account_details = json_decode( stripslashes( $_POST['sbi_account_json'] ), true );
|
907 |
array_map( 'sanitize_text_field', $new_account_details );
|
908 |
|
909 |
+
$basic_account_access_token_connect = new SB_Instagram_API_Connect( $new_account_details, 'access_token', array() );
|
910 |
+
$basic_account_access_token_connect->wp_http_connect();
|
911 |
+
$token_data = $basic_account_access_token_connect->get_data();
|
912 |
+
|
913 |
+
if ( ! $basic_account_access_token_connect->is_wp_error() && ! $basic_account_access_token_connect->is_instagram_error() ) {
|
914 |
+
$expires_in = $token_data['expires_in'];
|
915 |
+
$expires_timestamp = time() + $expires_in;
|
916 |
+
} else {
|
917 |
+
$expires_timestamp = time() + 60 * DAY_IN_SECONDS;
|
918 |
+
}
|
919 |
+
|
920 |
+
$basic_account_access_token_connect = new SB_Instagram_API_Connect( $new_account_details, 'header', array() );
|
921 |
+
$basic_account_access_token_connect->wp_http_connect();
|
922 |
+
$new_data = $basic_account_access_token_connect->get_data();
|
923 |
+
if ( $basic_account_access_token_connect->is_wp_error() || $basic_account_access_token_connect->is_instagram_error() ) {
|
924 |
+
return;
|
925 |
+
}
|
926 |
+
$api_account_details = array(
|
927 |
+
'access_token' => $new_account_details['access_token'],
|
928 |
+
'account_type' => 'personal',
|
929 |
+
'user_id' => $new_account_details['user_id'],
|
930 |
+
'username' => $new_data['username'],
|
931 |
+
'expires_timestamp' => $expires_timestamp,
|
932 |
+
'type' => 'basic',
|
933 |
+
'profile_picture' => '',
|
934 |
+
);
|
935 |
+
|
936 |
+
$updated_options = sbi_connect_basic_account( $api_account_details );
|
937 |
$connected_accounts = $updated_options['connected_accounts'];
|
938 |
$user_feed_ids = $updated_options['sb_instagram_user_id'];
|
939 |
}
|
1000 |
else :
|
1001 |
$doing_account_error_messages = count( $connected_accounts ) > 1;
|
1002 |
global $sb_instagram_posts_manager;
|
1003 |
+
$encryption = new SB_Instagram_Data_Encryption();
|
1004 |
?>
|
1005 |
<?php
|
1006 |
foreach ( $connected_accounts as $account ) :
|
1056 |
<span><i class="fa fa-exclamation-circle" aria-hidden="true"></i><?php esc_html_e( 'Feeds using this account might not be updating due to an error. Try viewing these feeds after reconnecting the account and saving your settings below.', 'instagram-feed' ); ?></span>
|
1057 |
</div>
|
1058 |
<?php endif; ?>
|
1059 |
+
|
1060 |
<div class="sbi_ca_alert">
|
1061 |
<span><?php esc_html_e( 'The Access Token for this account is expired or invalid. Click the button above to attempt to renew it.', 'instagram-feed' ); ?></span>
|
1062 |
</div>
|
1093 |
</div>
|
1094 |
<p class="sbi_tooltip sbi-more-info" style="display: none; width: 100%; box-sizing: border-box;"><?php echo wp_kses_post( sprintf( __( 'This account is a "private" account on Instagram. It needs to be manually reconnected every 60 days. %1$sChange this account to be "public"%2$s to have access tokens that are automatically refreshed.', 'instagram-feed' ), '<a href="https://help.instagram.com/116024195217477/In" target="_blank">', '</a>' ) ); ?></p>
|
1095 |
<?php endif; ?>
|
1096 |
+
<?php
|
1097 |
+
$show_encryption_warning = false;
|
1098 |
+
if ( isset( $account['access_token'] ) && strpos( $account['access_token'], 'IG' ) === false && strpos( $account['access_token'], 'EA' ) === false && ! $encryption->decrypt( $account['access_token'] ) ) {
|
1099 |
+
$show_encryption_warning = true;
|
1100 |
+
}
|
1101 |
+
if ( $show_encryption_warning ) :
|
1102 |
+
?>
|
1103 |
+
<div class="sbi_alert sbi_is_private">
|
1104 |
+
<span><?php esc_html_e( 'Could not decrypt access token. Please reconnect this account.', 'instagram-feed' ); ?></span>
|
1105 |
+
</div>
|
1106 |
+
<?php
|
1107 |
+
endif;
|
1108 |
+
?>
|
1109 |
|
1110 |
</div>
|
1111 |
|
inc/class-sb-instagram-api-connect.php
CHANGED
@@ -32,6 +32,11 @@ class SB_Instagram_API_Connect
|
|
32 |
*/
|
33 |
protected $response;
|
34 |
|
|
|
|
|
|
|
|
|
|
|
35 |
/**
|
36 |
* SB_Instagram_API_Connect constructor.
|
37 |
*
|
@@ -194,6 +199,40 @@ class SB_Instagram_API_Connect
|
|
194 |
$response = json_decode( str_replace( '%22', '”', $response['body'] ), true );
|
195 |
}
|
196 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
197 |
$this->response = $response;
|
198 |
}
|
199 |
|
@@ -234,6 +273,15 @@ class SB_Instagram_API_Connect
|
|
234 |
$sb_instagram_posts_manager->add_error( 'wp_remote_get', $response );
|
235 |
}
|
236 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
237 |
/**
|
238 |
* Sets the url for the API request based on the account information,
|
239 |
* type of data needed, and additional parameters.
|
@@ -252,28 +300,39 @@ class SB_Instagram_API_Connect
|
|
252 |
$num = ! empty( $params['num'] ) ? (int) $params['num'] : 33;
|
253 |
|
254 |
if ( $account_type === 'basic' ) {
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
|
|
259 |
} else {
|
260 |
-
|
261 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
262 |
}
|
|
|
263 |
} elseif ( $account_type === 'personal' ) {
|
264 |
-
|
265 |
-
$url = 'https://api.instagram.com/v1/users/' . $connected_account['user_id'] . '?access_token=' . sbi_maybe_clean( $connected_account['access_token'] );
|
266 |
-
} else {
|
267 |
-
$num = $num > 20 ? min( $num, 33 ) : 20; // minimum set at 20 due to IG TV bug
|
268 |
-
$url = 'https://api.instagram.com/v1/users/' . $connected_account['user_id'] . '/media/recent?count=' . $num . '&access_token=' . sbi_maybe_clean( $connected_account['access_token'] );
|
269 |
-
}
|
270 |
} else {
|
271 |
-
|
272 |
-
|
|
|
|
|
|
|
273 |
} else {
|
274 |
-
|
275 |
-
|
|
|
|
|
|
|
|
|
276 |
}
|
|
|
277 |
}
|
278 |
|
279 |
$this->set_url_from_args( $url );
|
32 |
*/
|
33 |
protected $response;
|
34 |
|
35 |
+
/**
|
36 |
+
* @var bool
|
37 |
+
*/
|
38 |
+
protected $encryption_error;
|
39 |
+
|
40 |
/**
|
41 |
* SB_Instagram_API_Connect constructor.
|
42 |
*
|
199 |
$response = json_decode( str_replace( '%22', '”', $response['body'] ), true );
|
200 |
}
|
201 |
|
202 |
+
if ( ( is_wp_error( $response ) || empty( $response ) ) && ini_get( 'allow_url_fopen' ) && function_exists( 'file_get_contents' ) ) {
|
203 |
+
$raw_response = file_get_contents( $this->url );
|
204 |
+
$decoded_response = json_decode( str_replace( '%22', '”', $raw_response ), true );
|
205 |
+
if ( is_array( $decoded_response ) ) {
|
206 |
+
$response = $decoded_response;
|
207 |
+
} else {
|
208 |
+
$response = $raw_response;
|
209 |
+
}
|
210 |
+
}
|
211 |
+
|
212 |
+
$this->response = $response;
|
213 |
+
}
|
214 |
+
|
215 |
+
/**
|
216 |
+
* Connect to the Instagram API and record the response
|
217 |
+
*/
|
218 |
+
public function wp_http_connect() {
|
219 |
+
if ( empty( $this->url ) ) {
|
220 |
+
$this->response = array();
|
221 |
+
return;
|
222 |
+
}
|
223 |
+
$args = array(
|
224 |
+
'timeout' => 20,
|
225 |
+
);
|
226 |
+
if ( version_compare( get_bloginfo( 'version' ), '3.7', '<' ) ) {
|
227 |
+
$args['sslverify'] = false;
|
228 |
+
}
|
229 |
+
$response = wp_remote_get( $this->url, $args );
|
230 |
+
|
231 |
+
if ( ! is_wp_error( $response ) ) {
|
232 |
+
// certain ways of representing the html for double quotes causes errors so replaced here.
|
233 |
+
$response = json_decode( str_replace( '%22', '”', $response['body'] ), true );
|
234 |
+
}
|
235 |
+
|
236 |
$this->response = $response;
|
237 |
}
|
238 |
|
273 |
$sb_instagram_posts_manager->add_error( 'wp_remote_get', $response );
|
274 |
}
|
275 |
|
276 |
+
/**
|
277 |
+
* Determines how and where to record an error connecting to a specified url
|
278 |
+
*
|
279 |
+
* @since 2.0/5.0
|
280 |
+
*/
|
281 |
+
public function has_encryption_error() {
|
282 |
+
return isset( $this->encryption_error ) && $this->encryption_error;
|
283 |
+
}
|
284 |
+
|
285 |
/**
|
286 |
* Sets the url for the API request based on the account information,
|
287 |
* type of data needed, and additional parameters.
|
300 |
$num = ! empty( $params['num'] ) ? (int) $params['num'] : 33;
|
301 |
|
302 |
if ( $account_type === 'basic' ) {
|
303 |
+
$access_token = sbi_maybe_clean( $connected_account['access_token'] );
|
304 |
+
if ( strpos( $access_token, 'IG' ) !== 0 ) {
|
305 |
+
$this->encryption_error = true;
|
306 |
+
|
307 |
+
$url = '';
|
308 |
} else {
|
309 |
+
if ( $endpoint_slug === 'access_token' ) {
|
310 |
+
$url = 'https://graph.instagram.com/refresh_access_token?grant_type=ig_refresh_token&access_token=' . $access_token;
|
311 |
+
} elseif ( $endpoint_slug === 'header' ) {
|
312 |
+
$url = 'https://graph.instagram.com/me?fields=id,username,media_count&access_token=' . $access_token;
|
313 |
+
} else {
|
314 |
+
$num = min( $num, 200 );
|
315 |
+
$url = 'https://graph.instagram.com/' . $connected_account['user_id'] . '/media?fields=media_url,thumbnail_url,caption,id,media_type,timestamp,username,comments_count,like_count,permalink,children%7Bmedia_url,id,media_type,timestamp,permalink,thumbnail_url%7D&limit=' . $num . '&access_token=' . $access_token;
|
316 |
+
}
|
317 |
}
|
318 |
+
|
319 |
} elseif ( $account_type === 'personal' ) {
|
320 |
+
$url = '';
|
|
|
|
|
|
|
|
|
|
|
321 |
} else {
|
322 |
+
$access_token = sbi_maybe_clean( $connected_account['access_token'] );
|
323 |
+
if ( strpos( $access_token, 'EA' ) !== 0 ) {
|
324 |
+
$this->encryption_error = true;
|
325 |
+
|
326 |
+
$url = '';
|
327 |
} else {
|
328 |
+
if ( 'header' === $endpoint_slug ) {
|
329 |
+
$url = 'https://graph.facebook.com/' . $connected_account['user_id'] . '?fields=biography,id,username,website,followers_count,media_count,profile_picture_url,name&access_token=' . sbi_maybe_clean( $connected_account['access_token'] );
|
330 |
+
} else {
|
331 |
+
$num = min( $num, 200 );
|
332 |
+
$url = 'https://graph.facebook.com/v10.0/' . $connected_account['user_id'] . '/media?fields=media_url,media_product_type,video_title,thumbnail_url,caption,id,media_type,timestamp,username,comments_count,like_count,permalink,children%7Bmedia_url,id,media_type,timestamp,permalink,thumbnail_url%7D&limit=' . $num . '&access_token=' . sbi_maybe_clean( $connected_account['access_token'] );
|
333 |
+
}
|
334 |
}
|
335 |
+
|
336 |
}
|
337 |
|
338 |
$this->set_url_from_args( $url );
|
inc/class-sb-instagram-feed.php
CHANGED
@@ -702,9 +702,10 @@ class SB_Instagram_Feed {
|
|
702 |
$this->add_report( 'api call made for ' . $term . ' - ' . $type );
|
703 |
|
704 |
$connection->connect();
|
|
|
705 |
$this->num_api_calls++;
|
706 |
|
707 |
-
if ( ! $connection->is_wp_error() && ! $connection->is_instagram_error() ) {
|
708 |
$one_successful_connection = true;
|
709 |
|
710 |
if ( $type === 'hashtags_top' ) {
|
@@ -854,6 +855,14 @@ class SB_Instagram_Feed {
|
|
854 |
} else {
|
855 |
if ( $connection->is_wp_error() ) {
|
856 |
SB_Instagram_API_Connect::handle_wp_remote_get_error( $connection->get_wp_error() );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
857 |
} else {
|
858 |
SB_Instagram_API_Connect::handle_instagram_error( $connection->get_data(), $connected_accounts_for_feed[ $term ] );
|
859 |
}
|
702 |
$this->add_report( 'api call made for ' . $term . ' - ' . $type );
|
703 |
|
704 |
$connection->connect();
|
705 |
+
|
706 |
$this->num_api_calls++;
|
707 |
|
708 |
+
if ( ! $connection->has_encryption_error() && ! $connection->is_wp_error() && ! $connection->is_instagram_error() ) {
|
709 |
$one_successful_connection = true;
|
710 |
|
711 |
if ( $type === 'hashtags_top' ) {
|
855 |
} else {
|
856 |
if ( $connection->is_wp_error() ) {
|
857 |
SB_Instagram_API_Connect::handle_wp_remote_get_error( $connection->get_wp_error() );
|
858 |
+
} elseif ( $connection->has_encryption_error() ) {
|
859 |
+
$error = array(
|
860 |
+
'error' => array(
|
861 |
+
'code' => '999',
|
862 |
+
'message' => __( 'Issue decrypting the access token for this feed. Please reconnect this Instagram account.', 'instagram-feed' )
|
863 |
+
)
|
864 |
+
);
|
865 |
+
SB_Instagram_API_Connect::handle_instagram_error( $error, $connected_accounts_for_feed[ $term ] );
|
866 |
} else {
|
867 |
SB_Instagram_API_Connect::handle_instagram_error( $connection->get_data(), $connected_accounts_for_feed[ $term ] );
|
868 |
}
|
inc/class-sb-instagram-posts-manager.php
CHANGED
@@ -274,6 +274,7 @@ class SB_Instagram_Posts_Manager {
|
|
274 |
100, // access token or permissions
|
275 |
190, // access token or permissions
|
276 |
10, // app permissions or scopes
|
|
|
277 |
);
|
278 |
|
279 |
return in_array( $error_code, $critical_codes, true );
|
274 |
100, // access token or permissions
|
275 |
190, // access token or permissions
|
276 |
10, // app permissions or scopes
|
277 |
+
999, // encryption
|
278 |
);
|
279 |
|
280 |
return in_array( $error_code, $critical_codes, true );
|
inc/class-sb-instagram-settings.php
CHANGED
@@ -910,8 +910,6 @@ class SB_Instagram_Settings {
|
|
910 |
|
911 |
break;
|
912 |
case 'string_true':
|
913 |
-
$value = floatval( $value );
|
914 |
-
|
915 |
if ( $value === 'true' || $value === 'on' || $value === true ) {
|
916 |
$sanitized_value = 'true';
|
917 |
} else {
|
910 |
|
911 |
break;
|
912 |
case 'string_true':
|
|
|
|
|
913 |
if ( $value === 'true' || $value === 'on' || $value === true ) {
|
914 |
$sanitized_value = 'true';
|
915 |
} else {
|
inc/class-sb-instagram-token-refresher.php
CHANGED
@@ -112,7 +112,7 @@ class SB_Instagram_Token_Refresher {
|
|
112 |
|
113 |
$connection = new SB_Instagram_API_Connect( $this->connected_account, 'access_token', array() );
|
114 |
|
115 |
-
$connection->
|
116 |
|
117 |
if ( ! $connection->is_wp_error() && ! $connection->is_instagram_error() ) {
|
118 |
$access_token_data = $connection->get_data();
|
112 |
|
113 |
$connection = new SB_Instagram_API_Connect( $this->connected_account, 'access_token', array() );
|
114 |
|
115 |
+
$connection->wp_http_connect();
|
116 |
|
117 |
if ( ! $connection->is_wp_error() && ! $connection->is_instagram_error() ) {
|
118 |
$access_token_data = $connection->get_data();
|
instagram-feed.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Smash Balloon Instagram Feed
|
4 |
Plugin URI: https://smashballoon.com/instagram-feed
|
5 |
Description: Display beautifully clean, customizable, and responsive Instagram feeds.
|
6 |
-
Version: 2.9.
|
7 |
Author: Smash Balloon
|
8 |
Author URI: https://smashballoon.com/
|
9 |
License: GPLv2 or later
|
@@ -23,7 +23,7 @@ along with this program; if not, write to the Free Software
|
|
23 |
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
24 |
*/
|
25 |
if ( ! defined( 'SBIVER' ) ) {
|
26 |
-
define( 'SBIVER', '2.9.
|
27 |
}
|
28 |
// Db version.
|
29 |
if ( ! defined( 'SBI_DBVERSION' ) ) {
|
3 |
Plugin Name: Smash Balloon Instagram Feed
|
4 |
Plugin URI: https://smashballoon.com/instagram-feed
|
5 |
Description: Display beautifully clean, customizable, and responsive Instagram feeds.
|
6 |
+
Version: 2.9.8
|
7 |
Author: Smash Balloon
|
8 |
Author URI: https://smashballoon.com/
|
9 |
License: GPLv2 or later
|
23 |
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
24 |
*/
|
25 |
if ( ! defined( 'SBIVER' ) ) {
|
26 |
+
define( 'SBIVER', '2.9.8' );
|
27 |
}
|
28 |
// Db version.
|
29 |
if ( ! defined( 'SBI_DBVERSION' ) ) {
|