![](/img/trans.png)
[英]Central OAuth2.0 Authorization on the Backend-Side using PHP and curl for Spotify Web API
[英]Using OAuth for API Authorization with PHP
我正在尝试使用几种API来获取PHP中的数据。 他们都使用OAuth授权,但我终生无法解决。
如果我使用API的网址对数据进行CURL请求或file_get_contents
请求,则显然它会要求我进行授权。
我的问题是,如何使用OAuth初始化此授权?
我有我的使用者密钥,使用者密钥,OAuth令牌和OAuth令牌密钥。 其中一个API声明我需要在请求中包含一个正确的OAuth标头,即:
Authorization: OAuth
oauth_consumer_key="key",
oauth_token="token",
oauth_signature_method="HMAC-SHA1",
oauth_signature="f922O9A2W5mFwDgiDvZbTSMK%2FPY%3D",
oauth_timestamp="157131220",
oauth_nonce="90922def48616d6d65724c61686176",
oauth_version="1.0"
但是我不知道如何在PHP中正确地编写此标头。
我尝试在PHP脚本的顶部使用header()
或在file_get_contents
请求中使用上下文参数。 我也研究过卷曲头。
我只是想不通。
我觉得我缺少明显的东西,任何建议将不胜感激!
我遵循( https://dev.twitter.com/oauth/overview/authorizing-requests )中的说明,因为当时我正尝试访问它们的API。 当时那是一件事错了。 那就是在步骤2.1的urlencoding。 现在可能有所不同。
您是否尝试过使用cURL进行请求? 我发现它比file_get_contents()
更简单
$headers = array(
Authorization => OAuth
oauth_consumer_key => "key",
oauth_token => "token",
oauth_signature_method => "HMAC-SHA1",
oauth_signature => "f922O9A2W5mFwDgiDvZbTSMK%2FPY%3D",
oauth_timestamp => "157131220",
oauth_nonce => "90922def48616d6d65724c61686176",
oauth_version => "1.0" );
curl_setopt($cURL, CURLOPT_URL, $url);
curl_setopt($cURL, CURLOPT_NOBODY, true);
curl_setopt($cURL, CURLOPT_POST, true);
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
curl_setopt($cURL, CURLOPT_POSTFIELDS, $data);
curl_setopt($cURL, CURLOPT_HEADER, true);
curl_setopt($cURL, CURLINFO_HEADER_OUT, true);
curl_setopt($cURL, CURLOPT_NOBODY, true);
curl_setopt($cURL, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($cURL);
不太确定数组的格式,但类似
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.