123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <?php
- define('INSTALLDIR', realpath(__DIR__ . '/../..'));
- require_once INSTALLDIR . '/scripts/commandline.inc';
- require_once INSTALLDIR . '/extlib/OAuth.php';
- $ini = parse_ini_file('oauth.ini');
- foreach (['consumer_key', 'consumer_secret', 'apiroot', 'request_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['request_token_url'];
- $parsed = parse_url($endpoint);
- $params = [];
- parse_str($parsed['query'], $params);
- $params['oauth_callback'] = 'oob';
- $hmac_method = new OAuthSignatureMethod_HMAC_SHA1();
- try {
- $req = OAuthRequest::from_consumer_and_token(
- $consumer,
- null,
- 'POST',
- $endpoint,
- $params
- );
- $req->sign_request($hmac_method, $consumer, null);
- $r = httpRequest($endpoint, $req->to_postdata());
- } catch (Exception $e) {
-
- echo $e->getMessage();
- echo "\nOAuth Request:\n";
- var_dump($req);
- exit(1);
- }
- $body = $r->getBody();
- $tokenStuff = [];
- parse_str($body, $tokenStuff);
- $tok = $tokenStuff['oauth_token'];
- $confirmed = $tokenStuff['oauth_callback_confirmed'];
- if (empty($tokenStuff['oauth_token'])
- || empty($tokenStuff['oauth_token_secret'])
- || empty($confirmed)
- || $confirmed != 'true') {
- echo "Error! HTTP response body: {$body}\n";
- exit(1);
- }
- $authurl = $ini['apiroot'] . $ini['authorize_url'] . '?oauth_token=' . $tok;
- echo "Request Token\n";
- echo ' - oauth_token = ' . $tokenStuff['oauth_token'] . "\n";
- echo ' - oauth_token_secret = ' . $tokenStuff['oauth_token_secret'] . "\n";
- echo "Authorize URL\n {$authurl}\n\n";
- echo "Now paste the Authorize URL into your browser and authorize your temporary credentials.\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);
- }
|