/**
  * 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;
         }
     }
 }
Beispiel #2
0
 /**
  * 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);
             }
         }
     }
 }