如何解决从 twitter 获取用户电子邮件以进行身份验证 (https://api.twitter.com/1.1/account/verify_credentials.json)
我遵循了 twitter 上的教程(文档),但在最后一个阶段卡住了,当时我需要通过他的邮件获取用户数据(以进行用户授权)。
在不带参数的情况下进行请求时,获取用户名、用户ID等数据,需要获取用户的邮件,但是添加参数“?include_email = true”时却报错32 “我们无法验证您的身份”。
我不明白我在哪里犯了错误(正如我在签名中所理解的)
感谢关注 (抱歉我的英语,这不是我的母语)
$oauthParams = [
"oauth_consumer_key" => "...","oauth_token" => $requestOauthToken,"oauth_signature_method" => "HMAC-SHA1","oauth_timestamp" => time(),"oauth_nonce" => md5(uniqid()),"oauth_version" => "1.0",];
$baseURI = "https://api.twitter.com/1.1/account/verify_credentials.json?include_email=true";
$baseString = $this->buildBaseStringGET($baseURI,$oauthParams);
$consumerSecret = '...';
$compositeKey = $this->getCompositeKey($consumerSecret,$requestOauthTokenSecret);
$oauthParams['oauth_signature'] = base64_encode(hash_hmac('sha1',$baseString,$compositeKey,true));
$header = $this->buildAuthorizationHeader($oauthParams);
$curl = curl_init();
curl_setopt_array($curl,array(
CURLOPT_URL => $baseURI,CURLOPT_RETURNTRANSFER => true,CURLOPT_ENCODING => '',CURLOPT_MAXREDirs => 10,CURLOPT_TIMEOUT => 0,CURLOPT_FOLLOWLOCATION => true,CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,CURLOPT_CUSTomrEQUEST => 'GET',CURLOPT_HTTPHEADER => array(
$header,),));
$response = curl_exec($curl);
curl_close($curl);
$response = json_decode($response,true)
private function buildBaseStringGET($baseURI,$oauthParams)
{
$baseStringParts = [];
ksort($oauthParams);
foreach ($oauthParams as $key => $value) {
$baseStringParts[] = "$key=" . urlencode($value);
}
return 'GET&' . urlencode($baseURI) . '&' . urlencode(implode('&',$baseStringParts));
}
private function buildAuthorizationHeader($oauthParams)
{
$authHeader = 'Authorization: OAuth ';
$values = [];
foreach ($oauthParams as $key => $value) {
$values[] = "$key=\"" . urlencode($value) . "\"";
}
$authHeader .= implode(',',$values);
return $authHeader;
}
解决方法
如果用户的帐户中没有电子邮件地址,或者电子邮件地址未经验证,则将返回 null。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。