- 2009-12-06 (日) 11:53
- PHP
先日のエントリー OAuth覚え書き で、エラーが発生したところで躓いたという記事を書きましたが、無事解決しました。
解決方法は下記。
SDN Projectさんのところで配布していた、oauth_test.txt(oauth_test.php)の記述に誤りがあったようです。 oauth_test.txt 78行目
$to = new TwitterOAuth($consumer_key, $consumer_secret, $_SESSION['oauth_access_token'], $_SESSION['oauth_access_token_secret']); /* Run request on twitter API as user. */ $content = $to->OAuthRequest('https://twitter.com/account/verify_credentials.xml', array(), 'GET'); //$content = $to->OAuthRequest('https://twitter.com/statuses/update.xml', array('status' => 'Test OAuth update.'), 'POST'); //$content = $to->OAuthRequest('https://twitter.com/statuses/replies.xml', array(), 'POST');とあるのですが、正しくは
$content = $to->OAuthRequest('https://twitter.com/account/verify_credentials.xml', 'GET', array());かと思われます(これでうまく行ったので)。
PHPでは、関数名の大文字小文字は区別しないようで、$to->OAuthRequest() は、 TwitterOAuth オブジェクトの oAuthRequest を参照していることになるようです。参考(ページ下部、注意枠)
で、twitteroauth.php の 142行目~
function oAuthRequest($url, $method, $parameters = array()) { if (isset($parameters['id'])) { $url = "{$url}/{$parameters['id']}"; unset($parameters['id']); } if (strrpos($url, 'https://') !== 0 && strrpos($url, 'http://') !== 0) { $url = "{$this->host}{$url}.{$this->format}"; } $request = OAuthRequest::from_consumer_and_token($this->consumer, $this->token, $method, $url, $parameters); $request->sign_request($this->sha1_method, $this->consumer, $this->token); switch ($method) { case 'GET': return $this->http($request->to_url(), 'GET'); default: return $this->http($request->get_normalized_http_url(), $method, $request->to_postdata()); } }上記の通り、 oAuthRequest の引数は、 $url, $method, $parameters = array() となってます。 ここで、$method と $parameters に入る値が逆になってしまったために、先日のようなエラーが起きたのではないかと思われます。 なので、$to->OAuthRequest() で渡している引数を、正しい順番に戻してあげることで、無事アクセストークン/シークレットの発行に至ることが出来ました。
これと同じ修正を、OAuth を利用してつぶやきを POST するサンプルプログラム(上記サイトの最後で公開)にもしてあげることで、そちらのほうも正常に動作するようになりました。
- Newer: テーマ変更しました。
- Older: OAuth覚え書き
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://unolabo.boo.jp/archives/2009/12/06-oauth%e8%a6%9a%e3%81%88%e6%9b%b8%e3%81%8d%e3%80%80%e3%81%9d%e3%81%ae%ef%bc%92.html/trackback
- Listed below are links to weblogs that reference
- OAuth覚え書き その2 from うのらぼ。