【问题标题】:Gmail API with iOS - getting emails带有 iOS 的 Gmail API - 获取电子邮件
【发布时间】:2014-11-24 14:43:08
【问题描述】:

我试图了解Gmail API 的工作原理。我的目标是检索用户收件箱中所有用户电子邮件的列表,下载到NSArray

目前的工作流程似乎如下:

  1. 使用 Google 提供的 frameworks 使用 OAuth 2.0 授权我的 iOS 应用程序。我已完成此步骤,我的应用可以成功授权一个 gmail 帐户。

  2. 下载电子邮件:

    documentation看来,这是显示消息列表的API调用:

    获取https://www.googleapis.com/gmail/v1/users/userId/messages

我的问题:

我是否需要编写自己的 Objective-C 包装器来调用这个 API 来下载消息,或者像 MailCore 这样的东西可以让我更轻松地做到这一点?据我了解,此 API 取代了 MailCore 实现的 IMAP。

根据示例 https://developers.google.com/gmail/api/quickstart/quickstart-python,我了解如何在 Python 中执行此操作,但我不知道如何将此代码移植到 Objective-C。

【问题讨论】:

    标签: ios objective-c api email


    【解决方案1】:

    基本工作流程是正确的,您有多种方法可以实现您想要的:

    1. Gmail API 是一个 RESTful API,可用于访问 Gmail 邮箱和发送邮件。该 API 支持通过 Gmail 用户界面提供的许多基本操作,例如阅读、撰写和发送邮件。它还允许您管理线程和消息的标签以及查询特定消息和线程。

      • 您可以围绕 API 编写自己的 Objective-C 包装器,以向 API reference 中描述的不同端点发出正确的 HTTP 请求,但工作量很大,您必须编写所需的一切,错误管理、验证等...

      • 您可以使用推荐的Google APIs Client Library for Objective-C 来访问适用于 iOS 和 Mac OS X 应用程序的基于 JSON 的 Google API。此 API 支持包括 Gmail 在内的许多 Google 产品。

    2. IMAP 和 SMTP 协议受 Gmail 支持,包括 OAuth 2.0 授权。

      • 您可以使用任何现有的支持 SASL 的 IMAP 和 SMTP 库,并且应该与 Gmail 支持的 SASL XOAUTH2 机制兼容。例如,您可以按照您的建议使用MailCore

    在我看来,您正在寻找与 Gmail 邮箱交互的最简单方法,因此 Gmail API 是授权访问用户 Gmail 数据的最佳选择。

    我会选择Google APIs Client Library for Objective-C,这样您就不必围绕 API 编写自己的包装器,并且可以开箱即用地使用它。

    您看到了检索线程页面的 python 示例代码:

    threads = gmail_service.users().threads().list(userId='me').execute()
    

    Google APIs Client Library for Objective-C 将为您提供执行相同操作的方法,并提供多种选项,例如在结果中包含垃圾邮件和垃圾文件夹的可能性、最大结果数、搜索与特定查询匹配的线程等。

    + (id)queryForUsersThreadsList;
    

    API reference 中描述的所有操作都受用于 Objective-C 的 Google API 客户端库支持。

    【讨论】:

      猜你喜欢
      • 2014-08-19
      • 1970-01-01
      • 2023-03-14
      • 2014-09-07
      • 2011-08-28
      • 2020-09-02
      • 2020-03-25
      • 2016-09-22
      • 2017-08-12
      相关资源
      最近更新 更多