123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- <?php
- define('INSTALLDIR', realpath(__DIR__ . '/../..'));
- require_once INSTALLDIR . '/extlib/OAuth.php';
- $ini = parse_ini_file('oauth.ini');
- foreach (['consumer_key', 'consumer_secret', 'apiroot', 'access_token_url'] as $inikey) {
- if (empty($ini[$inikey])) {
- echo "You forgot to specify a {$inikey} in your oauth.ini file.\n";
- exit(1);
- }
- }
- $consumer = new OAuthConsumer($ini['consumer_key'], $ini['consumer_secret']);
- $endpoint = $ini['apiroot'] . $ini['access_token_url'];
- $shortoptions = 't:s:v:';
- $longoptions = ['oauth_token=', 'oauth_token_secret=', 'oauth_verifier='];
- $helptext = <<<END_OF_ETOKENS_HELP
- fetch_token_creds.php [options]
- Exchange authorized OAuth temporary credentials for token credentials
- (an authorized request token for an access token)
- -t --oauth_token authorized request token
- -s --oauth_token_secret authorized request token secret
- -v --oauth_verifier authorized request token verifier
- END_OF_ETOKENS_HELP;
- require_once INSTALLDIR . '/scripts/commandline.inc';
- $token = $secret = $verifier = null;
- if (have_option('t', 'oauth_token')) {
- $token = get_option_value('t', 'oauth_token');
- }
- if (have_option('s', 'oauth_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)) {
- echo "Please specify the request token (--help for help).\n";
- exit(1);
- }
- if (empty($secret)) {
- echo "Please specify the request token secret (--help for help).\n";
- exit(1);
- }
- if (empty($verifier)) {
- echo "Please specify the request token verifier (--help for help).\n";
- exit(1);
- }
- $rtok = new OAuthToken($token, $secret);
- $parsed = parse_url($endpoint);
- parse_str($parsed['query'], $params);
- $params['oauth_verifier'] = $verifier;
- $hmac_method = new OAuthSignatureMethod_HMAC_SHA1();
- try {
- $oauthReq = OAuthRequest::from_consumer_and_token(
- $consumer,
- $rtok,
- 'POST',
- $endpoint,
- $params
- );
- $oauthReq->sign_request($hmac_method, $consumer, $rtok);
- $httpReq = httpRequest($endpoint, $oauthReq->to_postdata());
- $body = $httpReq->getBody();
- } catch (Exception $e) {
-
- echo $e->getMessage();
- echo "\nOAuth Request:\n";
- var_dump($oauthReq);
- exit(1);
- }
- $tokenStuff = [];
- parse_str($body, $tokenStuff);
- if (empty($tokenStuff['oauth_token']) || empty($tokenStuff['oauth_token_secret'])) {
- echo "Error! HTTP response body: {$body}\n";
- exit(1);
- }
- echo "Access Token\n";
- echo ' - oauth_token = ' . $tokenStuff['oauth_token'] . "\n";
- echo ' - oauth_token_secret = ' . $tokenStuff['oauth_token_secret'] . "\n";
- function httpRequest($endpoint, $poststr)
- {
- $request = HTTPClient::start();
- $request->setConfig(
- [
- 'follow_redirects' => true,
- 'connect_timeout' => 120,
- 'timeout' => 120,
- 'ssl_verify_peer' => false,
- 'ssl_verify_host' => false,
- ]
- );
- parse_str($poststr, $postdata);
- return $request->post($endpoint, null, $postdata);
- }
|