0

Twitterボタンでサインインして誰かを接続するための3つのステップを完了するためにphpコードを実装しようとしています。

Twitter のドキュメントで説明されているように、最初に /oauth/request_token への POST リクエストを作成する必要があります

これは fail です。401 エラーが返されます。

「oauth 署名とトークンの検証に失敗しました」

こうやって :

それは私のヘッダーです

Array
(
    [0] => Host: api.twitter.com
    [1] => User-Agent: skeleton master
    [2] => accept:*/*
    [3] => Content-Type: application/x-www-form-urlencoded
    [4] => Authorization: OAuth oauth_callback="http%3A%2F%2Fj55.host3.com",

oauth_consumer_key="**************",// value from my app     
                  oauth_nonce="sa72twxjlej6xd7cd02dcm51x0ss2g1vq9xj5u2r9m",
                  oauth_signature="fxaUSTkN8oT8wYnOKfLCEktZmmw%253D",
                  oauth_signature_method="HMAC-SHA1",
                  oauth_timestamp="1376917213",
                  oauth_version="1.0"
    )

私の署名機能:

function define_signature(){
$string="oauth_callback=".rawurlencode($this->oauth_callback);
$string.="&oauth_consumer_key=".rawurlencode($this->oauth_consumer_key);
$string.="&oauth_nonce=".rawurlencode($this->oauth_nonce);
$string.="&oauth_signature_method=".rawurlencode("HMAC-SHA1");
$string.="&oauth_timestamp=".rawurlencode($this->oauth_timestamp);
$string.="&oauth_version=1.0";

$str=$this->HTTP_method."&".rawurlencode($this->base_url)."&".rawurlencode($string);
$this->base_string=$str;
$str2=rawurlencode($this->oauth_consumer_secret)."&";
$key=base64_encode(hash_hmac("sha1",$str,$str2,true));
$this->oauth_signature=rawurlencode($key);
}

カールでお送りします

$c=curl_init();

$url="https://api.twitter.com/oauth/request_token";
curl_setopt($c,CURLOPT_URL,$url);

curl_setopt($c,CURLOPT_HTTPHEADER,$header);
curl_setopt($c,CURLOPT_POST,true);
curl_setopt($c,CURLOPT_RETURNTRANSFER,true);

curl_setopt($c,CURLOPT_HEADER,true);
curl_setopt($c, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );

curl_setopt($c,CURLOPT_SSL_VERIFYPEER,true);


$output=curl_exec($c);

print_r($output);

これは署名関数で使用される基本文字列です

POST&https%3A%2F%2Fapi.twitter.com%2Foauth%2Frequest_token&
oauth_callback%3Dhttp%253A%252F%252F.host31.com%
26oauth_consumer_key%**********
%26oauth_nonce%3Dqqlbu83vwexwnugyxi
ipdufus4plexu4ngfhoidlxa%26oauth_signature_method%3DHMAC-
SHA1%26oauth_timestamp%3D1376914890%26oauth_version%3D1.0

私はこれで間違いを見つけていません....svpを助けてください

4

0 に答える 0