【问题标题】:Google Calendar Rest API Auth谷歌日历休息 API 身份验证
【发布时间】:2019-03-13 22:34:17
【问题描述】:

我正在尝试从我的应用程序对 Google 日历 API 进行一些 Rest-API 调用,以显示一些日历数据,我慢慢地但肯定有点绝望。

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

因为 json 文件中没有访问令牌,所以我使用“获取新访问令牌”,从 json 中输入所有数据并获得一个密钥。但是,如果我使用这个密钥发送一个带有 oAuth2 授权的请求和那个示例 API-Call,我会得到一个 401。

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

实际上我只是想从我的 php 脚本中创建一些 cUrls 来获取一些日历数据。也许有人可以描述完成这项工作的必要步骤。

提前谢谢你。 :)

【问题讨论】:

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


    【解决方案1】:

    还有一个问题。使用访问令牌通过 Postman 获取数据介于两者之间。还使用刷新令牌来获取新的访问令牌。 但是在我的 Curl 中,在执行 api-request 时,我仍然得到 401 回复。通过 curl 刷新访问令牌效果很好,但获取数据的实际 api-call 似乎仍然不正确。

      $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,成功了。

    感谢您的帮助

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 感谢您的回复。当然,我已经阅读了文档,但它的描述不够详细,我无法理解。抱歉 :) 所以我创建了凭据,选择 oauth2-client-id。它是否正确?比作为应用程序类型,我选择了“其他”。或者我应该使用网络应用程序?我以前试过这个,但不知道如何处理回调 URL,因为没有重定向或其他东西。只是通过Curl(或邮递员)的http请求所以使用该json文件中的数据生成密钥不是正确的方法吗?或者我将如何处理获取 Access 的密钥?
      • 好的,现在我收到了数据回复。我没有明白我必须使用代码来单独请求访问令牌。现在的问题是如果令牌过期该怎么办,无需手动登录:)
      • 您可以使用刷新令牌来请求新的访问令牌。但是,是的,您将不得不这样做。也使用邮递员。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-05
      • 1970-01-01
      • 2022-11-08
      • 2016-11-25
      • 1970-01-01
      • 2012-07-23
      • 2020-09-26
      相关资源
      最近更新 更多