/** * Get the shortened url * * @param string $long_url * @return string * @access public */ public function shorten($long_url) { $googl_api_client_id_name = "microblogposter_plg_googl_api_client_id"; $googl_api_client_secret_name = "microblogposter_plg_googl_api_client_secret"; $googl_api_refresh_token_name = "microblogposter_plg_googl_api_refresh_token"; $googl_api_client_id_value = get_option($googl_api_client_id_name, ""); $googl_api_client_secret_value = get_option($googl_api_client_secret_name, ""); $googl_api_refresh_token_value = get_option($googl_api_refresh_token_name, ""); if ($googl_api_client_id_value && $googl_api_client_secret_value && $googl_api_refresh_token_value) { $url = "https://accounts.google.com/o/oauth2/token"; $post_args = array('refresh_token' => $googl_api_refresh_token_value, 'grant_type' => 'refresh_token', 'client_id' => $googl_api_client_id_value, 'client_secret' => $googl_api_client_secret_value); $curl = new MicroblogPoster_Curl(); $json_res = $curl->send_post_data($url, $post_args); $response = json_decode($json_res, true); if (isset($response['access_token']) && isset($response['token_type']) && $response['token_type'] == 'Bearer') { $url = 'https://www.googleapis.com/urlshortener/v1/url'; $headers = array('Authorization' => "Bearer " . $response['access_token'], 'Content-type' => 'application/json'); $curl = new MicroblogPoster_Curl(); $curl->set_headers($headers); $post_args = array('longUrl' => $long_url); $results_enc = $curl->send_post_data_json($url, json_encode($post_args)); $results = json_decode($results_enc, true); if (isset($results['id']) && isset($results['longUrl'])) { return $results['id']; } else { $log_data = array(); $log_data['account_id'] = 0; $log_data['account_type'] = "goo.gl"; $log_data['username'] = '******'; $log_data['post_id'] = 0; $log_data['action_result'] = 0; $log_data['update_message'] = ''; $log_data['log_message'] = $results_enc; MicroblogPoster_Poster::insert_log($log_data); return false; } } else { $log_data = array(); $log_data['account_id'] = 0; $log_data['account_type'] = "goo.gl"; $log_data['username'] = '******'; $log_data['post_id'] = 0; $log_data['action_result'] = 0; $log_data['update_message'] = ''; $log_data['log_message'] = $json_res; MicroblogPoster_Poster::insert_log($log_data); return false; } } }
/** * Make new post to blogger blogs * * @param string $update Text to be posted on microblogging site * @param array $post_content * @return void */ public static function update_blogger($old, $mp, $dash, $update, $post_content, $post_ID, $post_title, $permalink, $post_content_actual, $featured_image_src_full) { $blogger_accounts = MicroblogPoster_Poster::get_accounts_by_mode('blogger', $post_ID); if (!empty($blogger_accounts)) { if ($mp['val'] == 0) { $post_content[2] = '<a href="' . $post_content[2] . '">' . $post_content[2] . '</a>'; $post_content[3] = '<a href="' . $post_content[3] . '">' . $post_content[3] . '</a>'; } elseif ($mp['val'] == 1 && $mp['type'] == 'link') { $post_content[1] = '<a href="' . $post_content[1] . '">' . $post_content[1] . '</a>'; $post_content[2] = '<a href="' . $post_content[2] . '">' . $post_content[2] . '</a>'; } foreach ($blogger_accounts as $blogger_account) { if (MicroblogPoster_Poster::is_method_callable('MicroblogPoster_Poster_Pro', 'filter_single_account') && $dash == 1 && $mp['val'] == 0 && $old == 0) { $active = MicroblogPoster_Poster_Pro::filter_single_account($blogger_account['account_id']); if ($active === false) { continue; } else { if (isset($active['message_format']) && $active['message_format']) { $blogger_account['message_format'] = $active['message_format']; } } } elseif (MicroblogPoster_Poster::is_method_callable('MicroblogPoster_Poster_Enterprise', 'filter_single_account_mp') && $dash == 1 && $mp['val'] == 1 && $old == 0) { $active = MicroblogPoster_Poster_Enterprise::filter_single_account_mp($blogger_account['account_id']); if ($active === false) { continue; } else { if (isset($active['message_format']) && $active['message_format']) { $blogger_account['message_format'] = $active['message_format']; } } } elseif (MicroblogPoster_Poster::is_method_callable('MicroblogPoster_Poster', 'filter_single_account_old') && $dash == 1 && $mp['val'] == 0 && $old == 1) { $active = MicroblogPoster_Poster::filter_single_account_old($blogger_account['account_id']); if ($active === false) { continue; } else { if (isset($active['message_format']) && $active['message_format']) { $blogger_account['message_format'] = $active['message_format']; } } } if ($blogger_account['message_format'] && $mp['val'] == 0) { $update = str_ireplace(MicroblogPoster_Poster::get_shortcodes(), $post_content, $blogger_account['message_format']); } elseif ($blogger_account['message_format'] && $mp['val'] == 1 && $mp['type'] == 'link') { $update = str_ireplace(MicroblogPoster_Poster::get_shortcodes_mp(), $post_content, $blogger_account['message_format']); } $extra = json_decode($blogger_account['extra'], true); if (!$extra) { continue; } if (isset($extra['include_featured_image']) && $extra['include_featured_image'] == 1 && $featured_image_src_full) { $featured_image_html = '<div style="margin-bottom:15px;"><a href="' . $featured_image_src_full . '"><img src="' . $featured_image_src_full . '"/></a></div>'; $update = $featured_image_html . $update; } $url = "https://accounts.google.com/o/oauth2/token"; $post_args = array('refresh_token' => $extra['refresh_token'], 'grant_type' => 'refresh_token', 'client_id' => $blogger_account['consumer_key'], 'client_secret' => $blogger_account['consumer_secret']); $curl = new MicroblogPoster_Curl(); $json_res = $curl->send_post_data($url, $post_args); $response = json_decode($json_res, true); if (isset($response['access_token']) && isset($response['token_type']) && $response['token_type'] == 'Bearer') { $access_token_short = $response['access_token']; $blogger_end_point = 'https://www.googleapis.com/blogger/v3/blogs/' . $extra['blog_id'] . '/posts/'; $access_token = "Bearer " . $access_token_short; $body = new stdClass(); $body->kind = 'blogger#post'; $body->title = $post_title; $body->content = $update; $body->blog = new stdClass(); $body->blog->id = $extra['blog_id']; $body_json = json_encode($body); $headers = array('Authorization' => $access_token, 'Content-type' => 'application/json'); $curl->set_headers($headers); $result = $curl->send_post_data_json($blogger_end_point, $body_json); $result_dec = json_decode($result, true); $action_result = 2; if ($result_dec && isset($result_dec['kind']) && $result_dec['kind'] == 'blogger#post') { $action_result = 1; $result = "Success"; } $log_data = array(); $log_data['account_id'] = $blogger_account['account_id']; $log_data['account_type'] = "blogger"; $log_data['username'] = $blogger_account['username']; $log_data['post_id'] = $post_ID; $log_data['action_result'] = $action_result; $log_data['update_message'] = $update; $log_data['log_message'] = $result; if ($mp['val'] == 1) { $log_data['log_type'] = 'manual'; } elseif ($old == 1) { $log_data['log_type'] = 'old'; } MicroblogPoster_Poster::insert_log($log_data); } else { $log_data = array(); $log_data['account_id'] = $blogger_account['account_id']; $log_data['account_type'] = "blogger"; $log_data['username'] = $blogger_account['username']; $log_data['post_id'] = $post_ID; $log_data['action_result'] = 2; $log_data['update_message'] = $update; $log_data['log_message'] = $json_res; if ($mp['val'] == 1) { $log_data['log_type'] = 'manual'; } elseif ($old == 1) { $log_data['log_type'] = 'old'; } MicroblogPoster_Poster::insert_log($log_data); } } } }