【发布时间】:2017-01-04 15:54:05
【问题描述】:
正如标题所说,我在为受 OAuth 1.0a 保护的文件发出签名 HTTP 请求时遇到问题。 我正在尝试对请求使用 file_get_contents 方法,并希望通过使用 stream_context_create() 方法添加 Authorization 标头。 【源码如下】
$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 行未授权。 我究竟做错了什么?它是在创建标题吗? 我知道这也可以用 curl 来完成,但我对使用 curl 几乎一无所知。
感谢您的帮助!
【问题讨论】: