Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php for Twitter API生成OAuth签名?_Php_Twitter_Oauth - Fatal编程技术网

如何使用php for Twitter API生成OAuth签名?

如何使用php for Twitter API生成OAuth签名?,php,twitter,oauth,Php,Twitter,Oauth,实际上这不是一个php问题,更多的是关于OAuth的。 我试图理解如何生成OAuth签名密钥。 我阅读了Twitter文档并尝试了这个例子,但我不明白如何使用SHA1 我应该在带或不带密钥的基本字符串上使用SHA1吗? 我尝试了许多变体,但符号键与示例中的符号键不同 这是我的代码: function request_token(){ $headers = 'POST&'; $headers .= urlencode('https://api.twitter.com/oa

实际上这不是一个php问题,更多的是关于OAuth的。 我试图理解如何生成OAuth签名密钥。 我阅读了Twitter文档并尝试了这个例子,但我不明白如何使用SHA1

我应该在带或不带密钥的基本字符串上使用SHA1吗? 我尝试了许多变体,但符号键与示例中的符号键不同

这是我的代码:

function request_token(){

    $headers = 'POST&';
    $headers .= urlencode('https://api.twitter.com/oauth/request_token');
    $headers .= '%26oauth_callback%3d'.urlencode($this->oauth_callback);
    $headers .= '%26oauth_consumer_key%3d'.urlencode($this->oauth_consumer_key);
    $headers .= '%26oauth_nonce%3d'.urlencode($this->oauth_nonce);
    $headers .= '%26oauth_signature_method%3d'.urlencode($this->oauth_signature_method);
    $headers .= '%26oauth_timestamp%3d'.urlencode($this->oauth_timestamp);

    $request_token_url = 'http://api.twitter.com/oauth/request_token?';
    $sha = sha1($headers);
    $url = $request_token_url.$sha.$this->consumer_secret.'&';

    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,2);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
    curl_setopt($ch, CURLOPT_POST      ,1);
    curl_setopt($ch,CURLOPT_PUT,true); 
    curl_setopt($ch, CURLOPT_HEADER, 1);

    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

谢谢

我建议使用n,而不是尝试编写自己的

我建议使用n,而不是尝试编写自己的


你可能想看看这个工作方案你可能想看看这个工作方案如果你自己做请求你可以用它来测试签名帮助了我很多如果你自己做请求你可以用它来测试签名帮助了我很多好吧,首先,把所有那些+=都换成..=。这个运算符用于PHP中的连接。否,不是。=,仅:.=首先,将所有这些+=替换为。这个运算符用于PHP中的连接。否,不是。=,只有:=