forked from GNUsocial/gnu-social
		
	Update access token fetching test script to 1.0a
This commit is contained in:
		| @@ -24,82 +24,121 @@ require_once INSTALLDIR . '/extlib/OAuth.php'; | |||||||
|  |  | ||||||
| $ini = parse_ini_file("oauth.ini"); | $ini = parse_ini_file("oauth.ini"); | ||||||
|  |  | ||||||
| $test_consumer = new OAuthConsumer($ini['consumer_key'], $ini['consumer_secret']); | // Check to make sure we have everything we need from the ini file | ||||||
|  | foreach(array('consumer_key', 'consumer_secret', 'apiroot', 'access_token_url') as $inikey) { | ||||||
|  |     if (empty($ini[$inikey])) { | ||||||
|  |         print "You forgot to specify a $inikey in your oauth.ini file.\n"; | ||||||
|  |         exit(1); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
| $at_endpoint = $ini['apiroot'] . $ini['access_token_url']; | $consumer = new OAuthConsumer($ini['consumer_key'], $ini['consumer_secret']); | ||||||
|  |  | ||||||
| $shortoptions = 't:s:'; | $endpoint = $ini['apiroot'] . $ini['access_token_url']; | ||||||
| $longoptions = array('oauth_token=', 'token_secret='); |  | ||||||
|  | $shortoptions = 't:s:v:'; | ||||||
|  | $longoptions = array('oauth_token=', 'oauth_token_secret=', 'oauth_verifier='); | ||||||
|  |  | ||||||
| $helptext = <<<END_OF_ETOKENS_HELP | $helptext = <<<END_OF_ETOKENS_HELP | ||||||
|   exchangetokens.php [options] |   exchangetokens.php [options] | ||||||
|   Exchange an authorized OAuth request token for an access token |   Exchange an authorized OAuth request token for an access token | ||||||
|  |  | ||||||
|     -t --oauth_token        authorized request token |     -t --oauth_token        authorized request token | ||||||
|     -s --token_secret      authorized request token secret |     -s --oauth_token_secret authorized request token secret | ||||||
|  |     -v --oauth_verifier     authorized request token verifier | ||||||
|  |  | ||||||
|  |  | ||||||
| END_OF_ETOKENS_HELP; | END_OF_ETOKENS_HELP; | ||||||
|  |  | ||||||
| require_once INSTALLDIR . '/scripts/commandline.inc'; | require_once INSTALLDIR . '/scripts/commandline.inc'; | ||||||
|  |  | ||||||
| $token        = null; | $token = $secret = $verifier = null; | ||||||
| $token_secret = null; |  | ||||||
|  |  | ||||||
| if (have_option('t', 'oauth_token')) { | if (have_option('t', 'oauth_token')) { | ||||||
|     $token = get_option_value('oauth_token'); |     $token = get_option_value('t', 'oauth_token'); | ||||||
| } | } | ||||||
|  |  | ||||||
| if (have_option('s', 'token_secret')) { | if (have_option('s', 'oauth_token_secret')) { | ||||||
|     $token_secret = get_option_value('s', 'token_secret'); |     $secret = get_option_value('s', 'oauth_token_secret'); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | if (have_option('v', 'oauth_verifier')) { | ||||||
|  |     $verifier = get_option_value('v', 'oauth_verifier'); | ||||||
| } | } | ||||||
|  |  | ||||||
| if (empty($token)) { | if (empty($token)) { | ||||||
|     print "Please specify a request token.\n"; |     print "Please specify the request token (--help for help).\n"; | ||||||
|     exit(1); |     exit(1); | ||||||
| } | } | ||||||
|  |  | ||||||
| if (empty($token_secret)) { | if (empty($secret)) { | ||||||
|     print "Please specify a request token secret.\n"; |     print "Please specify the request token secret (--help for help).\n"; | ||||||
|     exit(1); |     exit(1); | ||||||
| } | } | ||||||
|  |  | ||||||
| $rt = new OAuthToken($token, $token_secret); | if (empty($verifier)) { | ||||||
| common_debug("Exchange request token = " . var_export($rt, true)); |     print "Please specify the request token verifier (--help for help).\n"; | ||||||
|  |     exit(1); | ||||||
|  | } | ||||||
|  |  | ||||||
| $parsed = parse_url($at_endpoint); | $rtok   = new OAuthToken($token, $secret); | ||||||
| $params = array(); | $parsed = parse_url($endpoint); | ||||||
| parse_str($parsed['query'], $params); | parse_str($parsed['query'], $params); | ||||||
|  |  | ||||||
|  | $params['oauth_verifier'] = $verifier; // 1.0a | ||||||
|  |  | ||||||
| $hmac_method = new OAuthSignatureMethod_HMAC_SHA1(); | $hmac_method = new OAuthSignatureMethod_HMAC_SHA1(); | ||||||
|  |  | ||||||
| $req_req = OAuthRequest::from_consumer_and_token($test_consumer, $rt, "GET", $at_endpoint, $params); | try { | ||||||
| $req_req->sign_request($hmac_method, $test_consumer, $rt); |  | ||||||
|  |  | ||||||
| $r = httpRequest($req_req->to_url()); |     $oauthReq = OAuthRequest::from_consumer_and_token( | ||||||
|  |         $consumer, | ||||||
|  |         $rtok, | ||||||
|  |         "POST", | ||||||
|  |         $endpoint, | ||||||
|  |         $params | ||||||
|  |     ); | ||||||
|  |  | ||||||
| common_debug("Exchange request token = " . var_export($rt, true)); |     $oauthReq->sign_request($hmac_method, $consumer, $rtok); | ||||||
| common_debug("Exchange tokens URL: " . $req_req->to_url()); |  | ||||||
|  |  | ||||||
| $body = $r->getBody(); |     $httpReq    = httpRequest($endpoint, $oauthReq->to_postdata()); | ||||||
|  |     $body       = $httpReq->getBody(); | ||||||
|  |  | ||||||
| $token_stuff = array(); | } catch (Exception $e) { | ||||||
| parse_str($body, $token_stuff); |     // oh noez | ||||||
|  |     print $e->getMessage(); | ||||||
|  |     print "\nOAuth Request:\n"; | ||||||
|  |     var_dump($oauthReq); | ||||||
|  |     exit(1); | ||||||
|  | } | ||||||
|  |  | ||||||
| print 'Access token        : ' . $token_stuff['oauth_token'] . "\n"; | $tokenStuff = array(); | ||||||
| print 'Access token secret : ' . $token_stuff['oauth_token_secret'] . "\n"; | parse_str($body, $tokenStuff); | ||||||
|  |  | ||||||
| function httpRequest($url) | if (empty($tokenStuff['oauth_token']) || empty($tokenStuff['oauth_token_secret'])) { | ||||||
|  |     print "Error! HTTP response body: $body\n"; | ||||||
|  |     exit(1); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | print "Access Token\n"; | ||||||
|  | print '   - oauth_token        = ' . $tokenStuff['oauth_token'] . "\n"; | ||||||
|  | print '   - oauth_token_secret = ' . $tokenStuff['oauth_token_secret'] . "\n"; | ||||||
|  |  | ||||||
|  | function httpRequest($endpoint, $poststr) | ||||||
| { | { | ||||||
|     $request = HTTPClient::start(); |     $request = HTTPClient::start(); | ||||||
|  |  | ||||||
|     $request->setConfig(array( |     $request->setConfig( | ||||||
|  |         array( | ||||||
|             'follow_redirects' => true, |             'follow_redirects' => true, | ||||||
| 	    'connect_timeout'  => 120, | 	    'connect_timeout'  => 120, | ||||||
| 	    'timeout'          => 120, | 	    'timeout'          => 120, | ||||||
| 	    'ssl_verify_peer'  => false, | 	    'ssl_verify_peer'  => false, | ||||||
| 	    'ssl_verify_host'  => false | 	    'ssl_verify_host'  => false | ||||||
| 			      )); | 	) | ||||||
|  |     ); | ||||||
|  |  | ||||||
|     return $request->get($url); |     parse_str($poststr, $postdata); | ||||||
|  |     return $request->post($endpoint, null, $postdata); | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -33,9 +33,9 @@ foreach(array('consumer_key', 'consumer_secret', 'apiroot', 'request_token_url') | |||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
| $testConsumer    = new OAuthConsumer($ini['consumer_key'], $ini['consumer_secret']); | $consumer = new OAuthConsumer($ini['consumer_key'], $ini['consumer_secret']); | ||||||
| $requestTokenUrl = $ini['apiroot'] . $ini['request_token_url']; | $endpoint = $ini['apiroot'] . $ini['request_token_url']; | ||||||
| $parsed          = parse_url($requestTokenUrl); | $parsed   = parse_url($endpoint); | ||||||
| $params   = array(); | $params   = array(); | ||||||
|  |  | ||||||
| parse_str($parsed['query'], $params); | parse_str($parsed['query'], $params); | ||||||
| @@ -45,14 +45,14 @@ $hmac_method = new OAuthSignatureMethod_HMAC_SHA1(); | |||||||
|  |  | ||||||
| try { | try { | ||||||
|     $req = OAuthRequest::from_consumer_and_token( |     $req = OAuthRequest::from_consumer_and_token( | ||||||
|         $testConsumer, |         $consumer, | ||||||
|         null, |         null, | ||||||
|         "POST", |         "POST", | ||||||
|         $requestTokenUrl, |         $endpoint, | ||||||
|         $params |         $params | ||||||
|     ); |     ); | ||||||
|     $req->sign_request($hmac_method, $testConsumer, NULL); |     $req->sign_request($hmac_method, $consumer, NULL); | ||||||
|     $r = httpRequest($req->to_url()); |     $r = httpRequest($endpoint, $req->to_postdata()); | ||||||
| } catch (Exception $e) { | } catch (Exception $e) { | ||||||
|     // oh noez |     // oh noez | ||||||
|     print $e->getMessage(); |     print $e->getMessage(); | ||||||
| @@ -69,18 +69,24 @@ parse_str($body, $tokenStuff); | |||||||
| $tok       = $tokenStuff['oauth_token']; | $tok       = $tokenStuff['oauth_token']; | ||||||
| $confirmed = $tokenStuff['oauth_callback_confirmed']; | $confirmed = $tokenStuff['oauth_callback_confirmed']; | ||||||
|  |  | ||||||
| if (empty($tokenStuff['oauth_token']) || empty($confirmed) || $confirmed != 'true') { | if (empty($tokenStuff['oauth_token']) | ||||||
|     print "Error: $body\n"; |     || empty($tokenStuff['oauth_token_secret']) | ||||||
|  |     || empty($confirmed) | ||||||
|  |     || $confirmed != 'true') | ||||||
|  | { | ||||||
|  |     print "Error! HTTP response body: $body\n"; | ||||||
|     exit(1); |     exit(1); | ||||||
| } | } | ||||||
|  |  | ||||||
| $authurl = $ini['apiroot'] . $ini['authorize_url'] . '?oauth_token=' . $tok; | $authurl = $ini['apiroot'] . $ini['authorize_url'] . '?oauth_token=' . $tok; | ||||||
|  |  | ||||||
| print "\nSuccess! "; | print "Request Token\n"; | ||||||
| print "Authorize URL:\n\n$authurl\n\n"; | print '   - oauth_token        = ' . $tokenStuff['oauth_token'] . "\n"; | ||||||
|  | print '   - oauth_token_secret = ' . $tokenStuff['oauth_token_secret'] . "\n"; | ||||||
|  | print "Authorize URL\n    $authurl\n\n"; | ||||||
| print "Now paste the Authorize URL into your browser and authorize your temporary credentials.\n"; | print "Now paste the Authorize URL into your browser and authorize your temporary credentials.\n"; | ||||||
|  |  | ||||||
| function httpRequest($url) | function httpRequest($endpoint, $poststr) | ||||||
| { | { | ||||||
|     $request = HTTPClient::start(); |     $request = HTTPClient::start(); | ||||||
|  |  | ||||||
| @@ -94,5 +100,7 @@ function httpRequest($url) | |||||||
|         ) |         ) | ||||||
|     ); |     ); | ||||||
|  |  | ||||||
|     return $request->post($url); |     // Turn signed request query string back into an array | ||||||
|  |     parse_str($poststr, $postdata); | ||||||
|  |     return $request->post($endpoint, null, $postdata); | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user