タイトルでは、OAuth 1.0a保護されたファイルのHTTPリクエストの署名に問題があると書いています。 stream_context_create()メソッドを使用してAuthorizationヘッダーを追加する要求に対してfile_get_contentsメソッドを使用しようとしています。 [下のソースコード]file_get_contents()を使用してAuthorizationヘッダーをHTTPリクエストに追加するにはどうすればよいですか?
$url = "https://rest.immobilienscout24.de/restapi/api/offer/v1.0/user/me/realestate";
$context = stream_context_create(array(
'http' => array(
'header' => "Authorization: OAuth
oauth_consumer_key = \"MY_KEY\”,
oauth_token = \"MY_TOKEN\"
oauth_signature_method= \"HMAC-SHA1\",
oauth_timestamp=\"TIMESTAMP\",
oauth_nonce=\"MY_NONCE\",
oauth_signature=\"MY_SIGNATURE\""
)
));
$data = file_get_contents($url, false, $context);
これは、要求が
GET /api/file HTTP/1.1 Host: example.com
Authorization: OAuth oauth_consumer_key="KEY",
oauth_token="TOKEN",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="TIMESTAMP",
oauth_nonce="NONCE",
oauth_signature="SIGNATURE"
問題のように見えるべきかです:私は常に次のエラーを取得する: は、ストリームをオープンに失敗しました:HTTPリクエストが失敗しました! HTTP/1.1 401行XXでは承認されていません。 私は何が間違っていますか?ヘッダーを作成していますか? これはカールでもできますが、文字通りカールを使った知識や経験はありません。
ありがとうございました!
ありがとうございました!承認ヘッダーでそれらを提供する必要があります。 まだ同じエラーが発生しています。 私のxampp-serverが送信した要求を見る可能性はありますか?たぶん私はエラーを見つけることができた... – Philipp
申し訳ありません、私は実際にOAuth 1.0の仕様を読むことはありません。誰もまだOAuth1を使用していないと思っていましたが、簡単な見直しの結果、あなたの質問にもっと適切に答えるための答えが改訂されました。これはOAuth1に固有です。あたかもこれが一般的なHTTPの質問であるかのように私はちょうど返事を出していた – Sherif
もう一度ありがとう!私は両方のオプションをテストしました。まだ同じエラー。 キーと署名が間違っている場合、同じエラーが発生しますか? – Philipp