pecl の oauth のバージョン違いによって以前のコードが動作しない場合がある

今まで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

もう、いろいろ気力が削がれたので、追跡終了します。

1件のコメント

  • 同じ所でひっかかっていました。
    記事の通りバージョンを戻したらすんなりいきました!
    ありがとうございます。

1件のピンバック

コメントする

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。