【问题标题】:Gmail API access token with PHP curl带有 PHP curl 的 Gmail API 访问令牌
【发布时间】:2017-05-23 09:36:13
【问题描述】:

在检索 API 调用的令牌时遇到问题。这是我的代码

$authUrl = "https://accounts.google.com/o/oauth2/token";

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $authUrl);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, array(
    'code' => $code,
    'client_id' => CLIENT_ID,
    'client_secret' => CLIENT_SECRET,
    'redirect_uri' => $redirectURL,
    'grant_type' => 'authorization_code'
));

$http_data = curl_exec($curl);  
curl_close($curl);

var_dump($http_data);

$http_data 表示请求无效。

我的任务是获取我的 gmail 帐户中的所有电子邮件,我认为为此我需要访问令牌。请指教。

提前感谢。

【问题讨论】:

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


【解决方案1】:

首先,您似乎将所有参数添加为 HTTP GET 字符串的一部分,这是一个 HTTP POST 调用。此外,您似乎忘记包含您从身份验证流程的第一部分获得的 代码

即Authentication Code,用于请求刷新 令牌。它也在 html 的正文中显示给用户 如页面标题所示。要获得刷新令牌,请发布 验证码返回给 Google。注意:这是一个 HTTP 帖子,你不能 只需将它放在一个可以作为 HTTP Get 的浏览器中。笔记: grant_type=authorization_code

https://accounts.google.com/o/oauth2/token
code={Your code from the first part of flow}&client_id={ClientId}.apps.googleusercontent.com&client_secret={ClientSecret}&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code

注意,您是否考虑过使用 Google APIs PHP Client library 来为您处理所有这些事情?

从我的Google 3 legged Oauth2 flow 文章中截取的代码。

【讨论】:

  • $authUrl = "accounts.google.com/o/oauth2/token"; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_POST => true, CURLOPT_POSTFIELDS => array( 'code' => $code, 'client_id' => CLIENT_ID, 'client_secret' => CLIENT_SECRET, 'redirect_uri' => getRedirectUri(), 'grant_type ' => 'authorization_code' ), CURLOPT_URL => $authUrl, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_RETURNTRANSFER => true )); $http_data = curl_exec($curl); curl_close($curl);
  • 使用上面的代码获取token。但得到空白响应。这里的 $code 是 4/EfvRZ7kEGBOK7TXfuYba4mDAdRUakUbd5is4IdEYJ8Q# 请告知代码有什么问题。抱歉无法格式化代码。
猜你喜欢
  • 2020-01-31
  • 1970-01-01
  • 2018-01-31
  • 2013-01-18
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 2016-05-07
相关资源
最近更新 更多