]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
centralize the creation of the api object
authorcash <cash.costello@gmail.com>
Mon, 15 Apr 2013 00:58:45 +0000 (20:58 -0400)
committercash <cash.costello@gmail.com>
Mon, 15 Apr 2013 00:58:45 +0000 (20:58 -0400)
mod/twitter_api/lib/twitter_api.php
mod/twitter_api/start.php

index e163d2b3e387e657e0a59ae076e616d35130f136..1299232c0205dd284e731b6d2db4042b2f86b2b1 100644 (file)
@@ -5,6 +5,24 @@
  * @package twitter_api
  */
 
+/**
+ * Get the API wrapper object
+ * 
+ * @param string $oauth_token        User's OAuth token
+ * @param string $oauth_token_secret User's OAuth secret
+ * @return TwitterOAuth|null
+ */
+function twitter_api_get_api_object($oauth_token = null, $oauth_token_secret = null) {
+       $consumer_key = elgg_get_plugin_setting('consumer_key', 'twitter_api');
+       $consumer_secret = elgg_get_plugin_setting('consumer_secret', 'twitter_api');
+       if (!($consumer_key && $consumer_secret)) {
+               return null;
+       }
+
+       $api = new TwitterOAuth($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
+       return $api;
+}
+
 /**
  * Tests if the system admin has enabled Sign-On-With-Twitter
  *
@@ -121,9 +139,7 @@ function twitter_api_login() {
                        forward();
                }
        } else {
-               $consumer_key = elgg_get_plugin_setting('consumer_key', 'twitter_api');
-               $consumer_secret = elgg_get_plugin_setting('consumer_secret', 'twitter_api');
-               $api = new TwitterOAuth($consumer_key, $consumer_secret, $token['oauth_token'], $token['oauth_token_secret']);
+               $api = twitter_api_get_api_object($token['oauth_token'], $token['oauth_token_secret']);
                $twitter = $api->get('account/verify_credentials');
 
                // backward compatibility for deprecated Twitter Login plugin
@@ -314,11 +330,8 @@ function twitter_api_revoke() {
 function twitter_api_get_authorize_url($callback = NULL, $login = true) {
        global $SESSION;
 
-       $consumer_key = elgg_get_plugin_setting('consumer_key', 'twitter_api');
-       $consumer_secret = elgg_get_plugin_setting('consumer_secret', 'twitter_api');
-
        // request tokens from Twitter
-       $twitter = new TwitterOAuth($consumer_key, $consumer_secret);
+       $twitter = twitter_api_get_api_object();
        $token = $twitter->getRequestToken($callback);
 
        // save token in session for use after authorization
@@ -340,16 +353,13 @@ function twitter_api_get_access_token($oauth_verifier = FALSE) {
        /* @var ElggSession $SESSION */
        global $SESSION;
 
-       $consumer_key = elgg_get_plugin_setting('consumer_key', 'twitter_api');
-       $consumer_secret = elgg_get_plugin_setting('consumer_secret', 'twitter_api');
-
        // retrieve stored tokens
        $oauth_token = $SESSION['twitter_api']['oauth_token'];
        $oauth_token_secret = $SESSION['twitter_api']['oauth_token_secret'];
        unset($SESSION['twitter_api']);
 
        // fetch an access token
-       $api = new TwitterOAuth($consumer_key, $consumer_secret, $oauth_token, $oauth_token_secret);
+       $api = twitter_api_get_api_object($oauth_token, $oauth_token_secret);
        return $api->getAccessToken($oauth_verifier);
 }
 
index e6221de6badbcf1a265b4631628439e2725afcd2..e3e866c1fd1b6d2dd8ec6e93cdb8c3b9e6cbe894 100644 (file)
@@ -115,13 +115,6 @@ function twitter_api_tweet($hook, $type, $returnvalue, $params) {
 
        // @todo - allow admin to select origins?
 
-       // check admin settings
-       $consumer_key = elgg_get_plugin_setting('consumer_key', 'twitter_api');
-       $consumer_secret = elgg_get_plugin_setting('consumer_secret', 'twitter_api');
-       if (!($consumer_key && $consumer_secret)) {
-               return;
-       }
-
        // check user settings
        $user_id = $params['user']->getGUID();
        $access_key = elgg_get_plugin_user_setting('access_key', $user_id, 'twitter_api');
@@ -130,8 +123,11 @@ function twitter_api_tweet($hook, $type, $returnvalue, $params) {
                return;
        }
 
-       // send tweet
-       $api = new TwitterOAuth($consumer_key, $consumer_secret, $access_key, $access_secret);
+       $api = twitter_api_get_api_object($access_key, $access_secret);
+       if (!$api) {
+               return;
+       }
+
        $api->post('statuses/update', array('status' => $params['message']));
 }
 
@@ -143,12 +139,6 @@ function twitter_api_tweet($hook, $type, $returnvalue, $params) {
  * @return array
  */
 function twitter_api_fetch_tweets($user_guid, $options = array()) {
-       // check admin settings
-       $consumer_key = elgg_get_plugin_setting('consumer_key', 'twitter_api');
-       $consumer_secret = elgg_get_plugin_setting('consumer_secret', 'twitter_api');
-       if (!($consumer_key && $consumer_secret)) {
-               return FALSE;
-       }
 
        // check user settings
        $access_key = elgg_get_plugin_user_setting('access_key', $user_guid, 'twitter_api');
@@ -157,8 +147,11 @@ function twitter_api_fetch_tweets($user_guid, $options = array()) {
                return FALSE;
        }
 
-       // fetch tweets
-       $api = new TwitterOAuth($consumer_key, $consumer_secret, $access_key, $access_secret);
+       $api = twitter_api_get_api_object($access_key, $access_secret);
+       if (!$api) {
+               return FALSE;
+       }
+
        return $api->get('statuses/user_timeline', $options);
 }