【问题标题】:Querying Gmail API through HTTP URL通过 HTTP URL 查询 Gmail API
【发布时间】:2014-12-28 18:46:39
【问题描述】:

我希望能够通过 HTTP GET 请求查询 Gmail API。

我正在尝试查询 Gmail API,以从我的收件箱标签中获取未读邮件计数。

API 参考:https://developers.google.com/gmail/api/v1/reference/users/labels/get

API 参考显示了以下获取未读计数的 HTTP 请求。

GET https://www.googleapis.com/gmail/v1/users/userId/labels/id

API 参考还说您需要通过 OAuth 2.0 进行授权。

我设法让 PHP 库中的示例成功查询 API,但没有足够的 PHP 文档来编写任何特定代码。

但是 API 参考列出了所有 HTTP 调用以访问 API 的不同部分,但是我不知道如何将 OAuth(访问令牌)与这些 HTTP 请求一起使用?

【问题讨论】:

    标签: php http oauth google-api-php-client gmail-api


    【解决方案1】:

    在 php 中访问 Gmail API 应该类似于从 php 访问其他 Google API。也许看看日历中的快速入门示例或 PHP 中的 Google Drive API 并从那里开始工作?

    如果您有 oauth2 访问令牌,您通常可以将其放在“授权”标头中。参考文献https://www.rfc-editor.org/rfc/rfc6750#section-2.1 虽然老实说,我认为从长远来看,弄清楚如何使用 PHP Google API 库做到这一点会容易得多......

    【讨论】:

      【解决方案2】:

      官方 PHP 客户端库附带了一些示例,例如 this one,向您展示了如何使用 OAuth 进行身份验证。 API documentation 也有很多关于这个过程的信息。

      要获取未读消息计数,您应该执行以下操作:

      // $googleClient is an authenticated instance of 'Google_Client'
      $gmail = new \Google_Service_Gmail($googleClient);
      $label = $gmail->users_labels->get('me', 'INBOX');
      $unreadCount = $label->messagesUnread;
      

      您可能必须在 Gmail 设置中关闭“对话视图”才能返回准确的结果。

      【讨论】:

      • 你先生是个天才!由于缺乏文档,这很困难,但你已经朝着正确的方向解雇了我!
      • 直接看库的源代码比较方便,cmet很多,结构很好
      猜你喜欢
      • 2019-04-29
      • 1970-01-01
      • 2010-12-13
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      • 2013-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多