【问题标题】:How do I use OAuth with PHP and cURL?如何将 OAuth 与 PHP 和 cURL 结合使用?
【发布时间】:2010-12-04 02:50:40
【问题描述】:

我正在尝试通过他们的数据 API 向 YouTube 进行身份验证,并且只需要知道应如何将标头从他们的示例(如下)转换为 PHP+CURL 函数调用。令人困惑的部分是授权部分,它使用自己的一组名称和值对打破了名称/值配对。

This documentation 一切都很好,只是我不知道如何格式化他们在标题中需要的内容。

他们的例子:

POST /accounts/OAuthGetRequestToken HTTP/1.1
Host: https://www.google.com
Content-Type: application/x-www-form-urlencoded
Authorization: OAuth
               oauth_consumer_key="example.com",
               oauth_signature_method="RSA-SHA1",
               oauth_signature="wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D",
               oauth_timestamp="137131200",
               oauth_nonce="4572616e48616d6d65724c61686176",
               oauth_version="1.0"
scope=http://gdata.youtube.com

这个不用花哨,我只需要换一个账号的key,就可以自动上传视频了。我只是不知道如何将授权项格式化为我的标题数组

curl_setopt($ch, CURLOPT_HEADER, $headers);

帮助?

【问题讨论】:

    标签: php curl oauth


    【解决方案1】:

    我之前没有使用过 youtube api,但我已经使用 OAuth 为 Web 应用程序制作了自己的 REST api。

    标题应该是:application/x-www-form-urlencoded 如例子所说,oauth_consumer_key、oauth_signature_method、oauth_signature等参数需要使用post发送,所以你需要这样写:

            $header[]         = 'Content-Type: application/x-www-form-urlencoded';
    
                curl_setopt($ch, CURLOPT_HTTPHEADER,     $header);
                curl_setopt($ch, CURLOPT_POST,        true);
                curl_setopt($ch, CURLOPT_POSTFIELDS, urlencode("oauth_consumer_key=example.com&
               oauth_signature_method=RSA-SHA1&
               oauth_signature=wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D&
               oauth_timestamp=137131200&
               oauth_nonce=4572616e48616d6d65724c61686176&
               oauth_version=1.0"));
    

    希望对你有帮助:D

    问候。

    【讨论】:

    • 我没有机会对此进行测试,但它看起来像是一个完整的示例,因此我将其标记为已接受。如果我(或其他人)发现上述针对 YouTube API 的问题,我会更新。 (你也有几个赞成票,所以就是这样。)
    猜你喜欢
    • 2015-10-26
    • 2017-02-13
    • 1970-01-01
    • 2012-03-26
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    相关资源
    最近更新 更多