pecl の oauth のバージョン違いによって以前のコードが動作しない場合がある
2011/03/02
2011/03/03
今までAWSのmicro instanceを使っていましたが、意外と金額がかさむので、spacerichのVPSに移動してMyTwitter-WebAPIを動作させようとしたけど、AWSで動いてたコードが、動かないという状況がありました。spacerichのVPSの問題かと思って、さくらのVPSでも試したところ、同じ現象。エラーメッセージは、以下。
[Wed Mar 02 03:25:28 2011] [error] [client xxx.xxx.xxx.xxx] PHP Fatal error: Uncaught exception 'OAuthException' with message 'Invalid auth/bad request (got a 401, expected HTTP/1.1 20X or a redirect) |
## 結論
2011-03-02現在、pecl で oauth のバージョン番号を指定せずにインストールした場合、1.1.0がインストールされます。
$ sudo pecl install oauth |
しかし、このバージョンにバグが残っているようで、@fukataの提案により、oauth-1.0.0を使ってみたら、今までのコードが難なく動作しました。pecl install oauthで入るバージョンに、問題があるとか恐ろしい。
インストールしたoauthをアンインストールしてから、1.0.0指定で再インストールすれば解決します。
$ sudo pecl uninstall oauth $ sudo pecl install oauth-1.0.0 |
もう、いろいろ気力が削がれたので、追跡終了します。
同じ所でひっかかっていました。
記事の通りバージョンを戻したらすんなりいきました!
ありがとうございます。