【问题标题】:Gmail API how to authenticate to access own data using PHP?Gmail API如何使用PHP进行身份验证以访问自己的数据?
【发布时间】:2017-09-04 19:07:57
【问题描述】:

我只是想访问我自己的 gmail 帐户并检索 10 条最新消息。我很难进行身份验证,因此我什至可以尝试这样做。

我按照这里的说明进行操作:https://developers.google.com/gmail/api/quickstart/php

似乎一切正常,但现在呢?文档很难遵循。 API 调用使用 API Explorer 工作,但我应该如何访问 PHP 中的 oAuth 令牌?

Google 提供以下示例函数:

function listMessages($service, $userId) {
  $pageToken = NULL;
  $messages = array();
  $opt_param = array();
  do {
    try {
      if ($pageToken) {
        $opt_param['pageToken'] = $pageToken;
      }
      $messagesResponse = $service->users_messages->listUsersMessages($userId, $opt_param);
      if ($messagesResponse->getMessages()) {
        $messages = array_merge($messages, $messagesResponse->getMessages());
        $pageToken = $messagesResponse->getNextPageToken();
      }
    } catch (Exception $e) {
      print 'An error occurred: ' . $e->getMessage();
    }
  } while ($pageToken);

  foreach ($messages as $message) {
    print 'Message with ID: ' . $message->getId() . '<br/>';
  }

  return $messages;
}

我如何获得$service?我假设这指的是存储在 client_secrets.json 中的密钥,但我不确定如何访问。

我知道这是一个有点基本的问题(太基本以至于 Google 没有解释它),但我确信我不是唯一一个为此苦苦挣扎的人。

谢谢!

【问题讨论】:

    标签: google-oauth gmail-api


    【解决方案1】:

    您处于常见的第 22 条规则中 - 我们都经历过。

    您想使用 Google API xxx(在您的情况下为 Gmail),因此您阅读了有关 Gmail API 的文档。他们通过链接对 OAuth 进行了引用,但那里有大量信息,因此您可以略读一下,然后返回 Gmail 文档,希望获得一些示例代码来复制/粘贴。

    不幸的是,您可能不得不返回 OAuth 文档并花几个小时阅读。当您理解它时,您就会知道,因为您将能够向自己解释身份验证和授权之间的区别。主要困难在于,大多数示例代码和解释都与您的应用程序有许多用户的用例相关,每个用户都希望使用您的应用程序安全地访问自己的电子邮件。单个用户想要访问他自己的电子邮件的用例是一个边缘案例,因此没有得到很好的解释。这篇文章可能对How do I authorise an app (web or installed) without user intervention? (canonical ?) 有所帮助。我是为 GDrive 编写的,但它可能也适用于 Gmail。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-22
      • 2016-12-27
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 2017-04-12
      相关资源
      最近更新 更多