ios - 带有 iOS 的 Gmail API - 接收电子邮件

标签 ios objective-c api email

我正在尝试了解 Gmail API作品。我的目标是检索用户收件箱中所有电子邮件的列表,并将其下载到 NSArray

目前的工作流程好像是这样的:

  1. 使用 frameworks 通过 OAuth 2.0 授权我的 iOS 应用程序由谷歌提供。我已完成这一步,我的应用程序可以成功授权一个 gmail 帐户。

  2. 下载电子邮件:

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

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

我的问题:

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

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

最佳答案

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

  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 协议(protocol)受 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 客户端库支持。

关于ios - 带有 iOS 的 Gmail API - 接收电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26112898/

相关文章:

javascript - 如何将图像(以 HTML Canvas 中的数据 URL 形式给出)上传到 facebook?

ios - iOS 9 中的 UISearchController - UISearchBar 中的 TextField 剪切出导航项

ios - NSinputstream 读取数据返回空值?

iphone - Facebook 应用程序请求仅显示在网站上,而不显示在 FB 应用程序上

objective-c - 如何正确填充圆弧扇区 NSBezierPath,Objective-C

javascript - 将数据从第一个ajax传递到另一个ajax

ios - react-native-firebase:onNotificationOpenedApp 和 getInitialNotification 不适用于 iOS

iphone - UINavigationController 和备用景观

ios - 截断 NSAttributedString 中的部分字符串

javascript - 如何在for循环中使用angular http rest api保证顺序?