pecl パッケージ oauth からクラス「OAuthProvider」をインスタンス化しようとすると、実稼働サーバーで例外が発生します。
try {
$oauth = new OAuthProvider();
} catch(Exception $e) {
// Get the error here
}
エラー メッセージは次のとおりです。「署名方法が不明です」
誰でもこのエラーが発生しましたか?
非CLISAPIを実行している場合、OAuthProviderは、AuthorizationヘッダーまたはREQUESTパラメーターのいずれかでoauth_signature_methodを(それぞれ)検索します。
CLI SAPIでは、ctorでパラメーターを設定できます。
$op = new OAuthProvider(array("oauth_signature_method" => OAUTH_SIG_METHOD_HMACSHA1));
これはPHP バグ #68168 です- 一部のサーバーには空の$_SERVER[HTTP_AUTHORIZATION]
値があり、php oauth 拡張機能によって正しく検出されません。