Homec4science

Add a Twitter OAuth1 adapter

Authored by epriestley <git@epriestley.com> on Aug 8 2013, 21:01.

Description

Add a Twitter OAuth1 adapter

Summary:
Ref T3687. This builds on previous work to add the 3-legged OAuth1 workflow on top of the OAuth1Future.

Since Twitter is the other major OAuth1 provider and is dramatically more straightforward than JIRA and has better documentation and error messages, I used it as the initial implementation rather than JIRA. I'll follow up with JIRA in a diff or two.

Test Plan:
Used this script to perform 3-legged OAuth 1 with Twitter:

<?php

require_once dirname(__FILE__).'/__init_script__.php';

$adapter = id(new PhutilAuthAdapterOAuthTwitter())
  ->setCallbackURI('http://local.aphront.com:8080/auth/login/twitter:twitter.com/')
  ->setConsumerKey('WQULev7T26MjgSDyurDQ')
  ->setConsumerSecret('wGvWIzjzCM5azRNJRpw9JBCJDm7hsxgQ0pBIYoGaLI');

$clean_adapter = clone $adapter;

echo "Open your browser and visit this URL:\n\n";
echo "    ".$adapter->getClientRedirectURI()."\n";
$response = phutil_console_prompt("Where does that redirect you?");

$response_uri = new PhutilURI($response);
$params = $response_uri->getQueryParams();

$clean_adapter->setToken(idx($params, 'oauth_token'));
$clean_adapter->setVerifier(idx($params, 'oauth_verifier'));

var_dump($clean_adapter->getAccountID());

Got my account ID out at the end.

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T3687

Differential Revision: https://secure.phabricator.com/D6703

Details

Committed
epriestley <git@epriestley.com>Aug 8 2013, 21:01
Pushed
aubortMar 17 2017, 12:03
Parents
rPHUeb227d4a5800: Add PhutilOAuth1Future, for signing OAuth1 requests
Branches
Unknown
Tags
Unknown

Event Timeline

epriestley <git@epriestley.com> committed rPHU3e2755e57c0a: Add a Twitter OAuth1 adapter (authored by epriestley <git@epriestley.com>).Aug 8 2013, 21:01