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

时间:2014-09-30 04:39:38

标签: ios objective-c api email

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

目前工作流程似乎如下:

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

  2. 下载电子邮件:

    documentation开始,这似乎是用于显示消息列表的API调用:

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

  3. 我的问题:

    我是否需要编写自己的Objective-C包装器以进行此API调用以下载消息,或者MailCore之类的内容是否允许我更轻松地执行此操作?据我了解,这个API取代了IMAP,这是MailCore实现的。

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

1 个答案:

答案 0 :(得分:10)

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

  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包括对许多Google产品的支持,包括Gmail。

  2. Gmail支持
  3. IMAP和SMTP 协议,并包含OAuth 2.0授权。

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

  4. 在我看来,您正在寻找与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;
    

    目标-C的Google API客户端库支持API reference中描述的所有操作。