<?php
/**
- * Laconica, the distributed open-source microblogging tool
+ * StatusNet, the distributed open-source microblogging tool
*
* Class for doing OAuth authentication against Twitter
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
- * @category Twitter
- * @package Laconica
- * @author Zach Copely <zach@controlyourself.ca>
- * @copyright 2009 Control Yourself, Inc.
+ * @category TwitterauthorizationAction
+ * @package StatusNet
+ * @author Zach Copely <zach@status.net>
+ * @copyright 2009 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link http://laconi.ca/
+ * @link http://status.net/
*/
-if (!defined('LACONICA')) {
+if (!defined('STATUSNET') && !defined('LACONICA')) {
exit(1);
}
-/**
- * Class for doing OAuth authentication against Twitter
- *
- * Peforms the OAuth "dance" between Laconica and Twitter -- requests a token,
- * authorizes it, and exchanges it for an access token. It also creates a link
- * (Foreign_link) between the Laconica user and Twitter user and stores the
- * access token and secret in the link.
- *
- * @category Twitter
- * @package Laconica
- * @author Zach Copley <zach@controlyourself.ca>
- * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
- * @link http://laconi.ca/
- *
- */
class TwitterauthorizationAction extends Action
{
- /**
- * Initialize class members. Looks for 'oauth_token' parameter.
- *
- * @param array $args misc. arguments
- *
- * @return boolean true
- */
function prepare($args)
{
parent::prepare($args);
// Get a new request token and authorize it
$client = new TwitterOAuthClient();
- $req_tok = $client->getRequestToken();
+ $req_tok =
+ $client->getRequestToken(TwitterOAuthClient::$requestTokenURL);
// Sock the request token away in the session temporarily
$_SESSION['twitter_request_token'] = $req_tok->key;
- $_SESSION['twitter_request_token_secret'] = $req_tok->key;
+ $_SESSION['twitter_request_token_secret'] = $req_tok->secret;
$auth_link = $client->getAuthorizeLink($req_tok);
// Exchange the request token for an access token
- $atok = $client->getAccessToken();
+ $atok = $client->getAccessToken(TwitterOAuthClient::$accessTokenURL);
// Test the access token and get the user's Twitter info
$client = new TwitterOAuthClient($atok->key, $atok->secret);
- $twitter_user = $client->verify_credentials();
+ $twitter_user = $client->verifyCredentials();
} catch (OAuthClientException $e) {
$msg = sprintf('OAuth client cURL error - code: %1$s, msg: %2$s',
$flink->user_id = $user->id;
$flink->foreign_id = $twitter_user->id;
$flink->service = TWITTER_SERVICE;
- $flink->token = $access_token->key;
- $flink->credentials = $access_token->secret;
+
+ $creds = TwitterOAuthClient::packToken($access_token);
+
+ $flink->credentials = $creds;
$flink->created = common_sql_now();
// Defaults: noticesync on, everything else off