带有PHP / Curl列表消息的Gmail API

时间:2015-09-02 21:39:09

标签: php curl google-api token gmail-api

我正在尝试使用Google API获取我的Gmail邮件列表。我设法使用此卷曲方法获取我的联系人列表和其他一些Google资源,但我得到了"无效的凭据"每当我尝试检索我的电子邮件列表。 - 请注意我的范围设置正确。

这是PHP代码:

    <?

$thetokenarray=array();
$thetokenarray= json_decode($_SESSION["token"] ,true);
$thetoken =  $thetokenarray["access_token"] ;

$thedomain =  substr(strrchr($_SESSION["email"], "@"), 1);

$ch = curl_init();
$headers = array("Authorization: access_token ".$thetoken."");
print_r($headers);

curl_setopt($ch, CURLOPT_URL, 'https://www.googleapis.com/gmail/v1/users/enattee%40gmail.com/messages');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);

$response = json_decode($response,true);
print_r($response);

?>

Google答案:

  

数组([error] =&gt;数组([errors] =&gt;数组([0] =&gt;数组([domain]   =&GT;全球[原因] =&gt; authError [message] =&gt;凭据无效[locationType] =&gt; header [location] =&gt;授权))[code] =&gt; 401   [message] =&gt;证书无效))

这是我使用https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ya29.4gE6OJdoxxxT1UP0Yxxxxy3DvlPphF-1CVIFPfqp0j9Cuhm-hT0W_Qy3oGrcF-

时来自谷歌的令牌反馈
{
 "issued_to": "64125009955-1hlmj0jgi9j2hd4sxxxxxaem9c9qhqcf8f.apps.googleusercontent.com",
 "audience": "64125xxxx09955-1hlmj0jgixxxxx9c9qhqcf8f.apps.googleusercontent.com",
 "user_id": "10597422xxxx25084",
 "scope": "https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/gmail.readonly https://www.google.com/m8/feeds/ https://www.googleapis.com/auth/admin.directory.user.readonly https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/plus.profile.emails.read https://www.googleapis.com/auth/plus.moments.write https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/plus.profile.agerange.read https://www.googleapis.com/auth/plus.profile.language.read https://www.googleapis.com/auth/plus.circles.members.read",
 "expires_in": 3427,
 "email": "exxx@gmail.com",
 "verified_email": true,
 "access_type": "offline"
}

最终,如果有一种更简单,更不同的方法来检索登录的用户电子邮件列表,那么这也很棒:)

1 个答案:

答案 0 :(得分:0)

实际上代码还可以。在我的测试服务器上使用错误的参数设置了AuthUrl生成器。

对于那些想要使用代码的人,Google-PHP-Api https://github.com/google/google-api-php-client就是示例中使用的那个。