【问题标题】:Using OAuth for API Authorization with PHP通过 PHP 使用 OAuth 进行 API 授权
【发布时间】:2015-01-08 21:14:25
【问题描述】:

我正在尝试访问几个 API 以在 PHP 中获取数据。他们都使用 OAuth 授权,我这辈子都想不通。

如果我使用 API 的 url 发出 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 请求中使用上下文参数。我也研究了 curl 标头。

我就是想不通。
我觉得我遗漏了一些明显的东西,任何建议都将不胜感激!

【问题讨论】:

  • 你应该添加你的书面代码作为你的问题的编辑。

标签: php api curl oauth header


【解决方案1】:

我按照 (https://dev.twitter.com/oauth/overview/authorizing-requests) 的说明进行操作,因为当时我正试图访问他们的 API。当时那里有一件事是错误的。那是步骤 2.1 中的 urlencoding。现在可能不一样了。

【讨论】:

    【解决方案2】:

    您是否尝试过使用 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);
    

    不太确定数组的格式,但类似

    【讨论】:

      猜你喜欢
      • 2016-04-17
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-02
      • 2012-07-19
      • 2019-07-18
      • 2013-03-14
      相关资源
      最近更新 更多