Google Calendar Rest API认证

时间:2018-10-09 08:02:22

标签: google-calendar-api google-oauth postman

我正在尝试从我的应用程序对Google Calendar API进行一些Rest-API调用,以显示一些Calendar Data,但我确实很慢,但肯定会感到绝望。

我已经激活了API,创建了凭证并下载了客户端秘密的Json文件。 为了进行测试,我使用Postman向API发送示例请求,例如https://www.googleapis.com/calendar/v3/calendars/ {calendar-ID} / acl

因为在json文件中没有访问令牌,所以我使用了“获取新的访问令牌”,从json输入了所有数据并获得了密钥。但是,如果我使用此密钥发送具有oAuth2授权的请求,并且该示例API调用我得到了401。

我玩了几个小时没有成功。我对这种授权不是很有经验,肯定会在这里遗漏一点。

实际上,我只是想从我的php脚本中获取一些日历,以获取一些日历数据。也许有人可以描述完成此任务的必要步骤。

先谢谢您。 :)

2 个答案:

答案 0 :(得分:0)

您从google下载的凭据文件将您的应用程序标识为google。它不能让您直接访问api。

要访问包含私人用户数据的Google api,您需要使用OAuth2进行身份验证,以获得资源所有者的同意才能访问其数据。

这些链接可以帮助您使用从Google开发者控制台获得的客户ID和客户机密来设置邮递员。

答案 1 :(得分:0)

还剩下一个问题。使用访问令牌通过Postman获取数据的过程介于两者之间。还可以使用refresh-token来获取新的acces令牌。 但是在我的Curl中,执行api请求时,我仍然收到401。通过curl刷新访问令牌的效果很好,但是获取数据的实际api调用似乎还没有到位。

  $oCurl = curl_init();
    curl_setopt($oCurl, CURLOPT_HTTPHEADER, array(
        'Authorization' => 'Bearer '.$token,

    ));

    curl_setopt($oCurl, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($oCurl, CURLOPT_TIMEOUT, 30);
    curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, true);
    curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($oCurl, CURLOPT_URL, $url);
    $response = curl_exec($oCurl);
    $list = json_decode($response );

所以响应仍然

[code] => 401
[message] => Login Required

也许有人知道这里出了什么问题? :)

€好的,将'Authorization'=>'Bearer'。$ token更改为'Authorization:Bearer'。$ token,成功了。

感谢您的帮助