/** * Get client instance authenticated with 'system' credentials * @param bool whether we're getting the system default client which is expected to be authed * @return TwitterApiClient */ public static function create_instance($default = true) { $Client = new TwitterApiClient(); extract(_twitter_api_config()); if ($default) { if (!$consumer_key || !$consumer_secret || !$access_key || !$access_secret) { trigger_error(__('Twitter application not fully configured', 'twitter-api')); } $Client->set_oauth($consumer_key, $consumer_secret, $access_key, $access_secret); } else { if ($consumer_key && $consumer_secret) { $Client->set_oauth($consumer_key, $consumer_secret); } } return $Client; }
/** * Test if system-configured client is authed and ready to use */ function twitter_api_configured() { function_exists('_twitter_api_config') or twitter_api_include('core'); extract(_twitter_api_config()); return $consumer_key && $consumer_secret && $access_key && $access_secret; }
/** * Render full admin page */ function twitter_api_admin_render_page() { if (!current_user_can('manage_options')) { twitter_api_admin_render_header(__("You don't have permission to manage Twitter API settings", 'twitter-api'), 'error'); twitter_api_admin_render_footer(); return; } try { // update applicaion settings if posted if (isset($_POST['saf_twitter']) && is_array($update = $_POST['saf_twitter'])) { $conf = _twitter_api_config($update); } else { $conf = _twitter_api_config(); } // check whether we have any OAuth params extract($conf); if (!$consumer_key || !$consumer_secret) { throw new Exception(__('Twitter application not fully configured', 'twitter-api')); } // else exchange access token if callback // request secret saved as option if (isset($_GET['oauth_token']) && isset($_GET['oauth_verifier'])) { $Token = twitter_api_oauth_access_token($consumer_key, $consumer_secret, $_GET['oauth_token'], $request_secret, $_GET['oauth_verifier']); // have access token, update config and destroy request secret $conf = _twitter_api_config(array('request_secret' => '', 'access_key' => $Token->key, 'access_secret' => $Token->secret)); extract($conf); // fall through to verification of credentials } // else administrator needs to connect / authenticate with Twitter. if (!$access_key || !$access_secret) { twitter_api_admin_render_header(__('Plugin not yet authenticated with Twitter', 'twitter-api'), 'error'); twitter_api_admin_render_login($consumer_key, $consumer_secret); } else { $me = twitter_api_get('account/verify_credentials'); twitter_api_admin_render_header(sprintf(__('Authenticated as @%s', 'twitter-api'), $me['screen_name']), 'updated'); } } catch (TwitterApiException $Ex) { twitter_api_admin_render_header($Ex->getStatus() . ': Error ' . $Ex->getCode() . ', ' . $Ex->getMessage(), 'error'); if (401 === $Ex->getStatus()) { twitter_api_admin_render_login($consumer_key, $consumer_secret); } } catch (Exception $Ex) { twitter_api_admin_render_header($Ex->getMessage(), 'error'); } // end admin page with options form and close wrapper twitter_api_admin_render_form(); twitter_api_admin_render_footer(); }