PHPでクライアントベースのOAuth認証
まさに誰得。
ブラウザベースは情報いっぱいあったんだけど、クライアントベースが見つからなかったので。
取得したaccess_token、access_token_secretを利用の仕方は下記で。
PEAR::HTTP_OAuthでxAuth – ぱんぴーまっしぐら
#!/usr/bin/env php
<?php
require_once 'HTTP/OAuth/Consumer.php';
define('CONSUMER_KEY', 'xxxxxxxxxxxxxxxxxxxx');
define('CONSUMER_SECRET', 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx');
try {
$http_request = new HTTP_Request2();
$http_request->setConfig('ssl_verify_peer', false);
$consumer_request = new HTTP_OAuth_Consumer_Request();
$consumer_request->accept($http_request);
$consumer = new HTTP_OAuth_Consumer(CONSUMER_KEY, CONSUMER_SECRET);
$consumer->accept($consumer_request);
$consumer->getRequestToken('http://twitter.com/oauth/request_token');
$url = $consumer->getAuthorizeUrl('http://twitter.com/oauth/authorize');
if (!$stdin = fopen('php://stdin', 'r')) {
throw new Exception('stdin open failed');
}
echo 'Visit the following URL in your browser to authenticate twitter: ';
echo $url."\n";
echo 'Enter Twitter OAuth PIN: ';
$pin = trim(fgets($stdin, 64));
$consumer->getAccessToken('http://twitter.com/oauth/access_token', $pin);
echo 'access_token: '.$consumer->getToken()."\n";
echo 'access_token_secret: '.$consumer->getTokenSecret()."\n";
} catch (Exception $e) {
echo $e->getMessage().' in '.$e->getFile().' line '.$e->getLine()."\n";
exit(1);
}