twitter php_twitter 之服务端验证【php】

贴一下我们代码吧

$token = "'; //,token和token_secret 是1对的,由客户端上传

$token_secret = "";

$consumerkey = ""; //这个就不说明了,相当于appid吧

$consumerkeySecret=""; //这个就不说明了

$time = time();

$oauth_consumer_key = $consumerkey;

$oauth_nonce=$time . rand();

$oauth_signature_method="HMAC-SHA1";

$oauth_timestamp=$time;

$oauth_version="1.0";

$httpMethod = 'GET';

$url="https://api.twitter.com/1.1/account/verify_credentials.json";

//参数,此次请求中的除了oauth_signature以外的所有参数按照字母顺序升序排列,如果参数名相同,那么按照参数值的字母顺序升序排列。

$params = "oauth_consumer_key={$oauth_consumer_key}&oauth_nonce={$oauth_nonce}&oauth_signature_method={$oauth_signature_method}&oauth_timestamp={$oauth_timestamp}&oauth_token={$token}&oauth_version={$oauth_version}";

//签名串(text)的构成:HttpMethod&url&参数。(一定是先各自urlencode后再用‘&’相连起来)

$signature_text = urlencode($httpMethod) . '&' . urlencode($url) . '&' . urlencode($params);

//echo $consumerkeySecret.'&'.$token_secret;

$signature= base64_encode(hash_hmac("sha1", $signature_text, $consumerkeySecret.'&'.$token_secret,true));//签名方法 $consumerkeySecret.'&'.$token_secret key是由2个组成哟,token和token_secret 是1对的,由客户端上传

$httpHeader =

'Authorization: OAuth ' .

'oauth_consumer_key='.$oauth_consumer_key .

',oauth_nonce='.$oauth_nonce .

',oauth_signature_method='.$oauth_signature_method .

',oauth_timestamp='.$oauth_timestamp .

',oauth_token='.urlencode($token) .

',oauth_version='.$oauth_version .

',oauth_signature='.urlencode($signature);

echo checkLoginTwitter signature_text=".$signature_text." ".$httpHeader;

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_POST, 0);

curl_setopt($ch, CURLOPT_HTTPHEADER, array($httpHeader));

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);

curl_setopt($ch, CURLOPT_HEADER, 0);

curl_setopt($ch, CURLOPT_TIMEOUT, 30);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);

if (false === $ret) {

//$ret = curl_errno($ch);

echo "checkLoginTwitter error curl_errno=".curl_errno($ch);

}

curl_close($ch);

返回的n多数据,对我来说没有什么用【只有id和name有用而已】,主要是验证token是否正确。

报{"errors":[{"code":32,"message":"Could not authenticate you."}]} 说明验证数据有问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值