2014-09-30 6 views
5

Ich versuche zu verstehen, wie die Gmail API funktioniert. Mein Ziel ist es, eine Liste aller E-Mails eines Benutzers in seinem Posteingang zu erhalten, der auf eine NSArray heruntergeladen wurde.Gmail API mit iOS - E-Mails bekommen

Derzeit scheint der Workflow wie folgt zu sein:

  1. mit OAuth 2.0 meinen iOS-App ermächtigten frameworks von Google bereitgestellt werden. Ich habe abgeschlossen diesen Schritt und meine App kann ein Google Mail-Konto erfolgreich autorisieren.

  2. Herunterladen von E-Mails:

    Vom documentation, so scheint es, dass dies der API-Aufruf ist eine Liste der Nachrichten zu zeigen:

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

Meine Frage:

Würde ich meinen eigenen Objective-C-Wrapper schreiben müssen, um diesen AP zu machen Ich rufe an, um die Nachrichten herunterzuladen, oder würde etwas wie MailCore mir erlauben, dies einfacher zu tun? Wie ich es verstehe, ersetzt diese API IMAP, was MailCore implementiert.

Ich verstehe, wie dies in Python zu tun, wie im Beispiel https://developers.google.com/gmail/api/quickstart/quickstart-python, aber ich sehe nicht, wie ich diesen Code auf Objective-C portieren würde.

Antwort

9

Der grundlegende Arbeitsablauf ist richtig, und Sie haben mehrere Möglichkeiten, um zu erreichen, was Sie wollen:

  1. Die Gmail API die eine RESTful API ist, die verwendet werden können, um Google Mail-Postfächer zugreifen und E-Mail senden. Die API unterstützt viele der grundlegenden Vorgänge, die über die Google Mail-Benutzeroberfläche verfügbar sind, z. B. Lesen, Verfassen und Senden von E-Mails. Darüber hinaus können Sie Labels für Threads und Nachrichten verwalten und nach bestimmten Nachrichten und Threads suchen.

    • Sie können Ihren eigenen Objective-C-Wrapper um die API schreiben, um die richtige HTTP-Anforderung an den differents Endpunkte in den API reference beschrieben zu machen, aber es ist eine Menge Arbeit, müssen Sie alles, was Sie schreiben müssen, Fehlermanagement , Validierung, etc ...

    • Sie können die Google APIs Client Library for Objective-C empfohlen für den Zugriff auf JSON-basierte Google APIs für iOS und Mac OS X-Anwendungen verwenden. Diese API enthält Unterstützung für viele Google-Produkte, einschließlich Google Mail.

  2. IMAP und SMTP Protokolle werden von Google Mail unterstützt und umfassen OAuth 2.0 Autorisierung.

    • Sie können alle vorhandenen IMAP und SMTP-Bibliotheken verwenden, die SASL unterstützt Sie wollen und sollten mit dem SASL XOAUTH2 Mechanismus von Google Mail unterstützt kompatibel sein. Sie können MailCore zum Beispiel wie Sie vorgeschlagen verwenden.

Es scheint mir, du bist für die einfachste Art und Weise der Suche mit Google Mail-Postfächer zu interagieren, so dass die Google Mail-API die beste Wahl für den autorisierten Zugriff auf ein Google Mail-Daten des Benutzers ist.

Ich würde für die Google APIs Client Library for Objective-C gehen, so müssen Sie nicht Ihre eigenen Wrapper um die API schreiben und können es aus der Box verwenden.

Sie sah den Python Beispielcode eine Seite der Threads abzurufen:

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

Die Google APIs Client Library for Objective-C werden Sie Methoden geben, die gleiche Sache mit mehreren Optionen wie möglich zu tun, um die Spam-& trash Ordner in den Ergebnissen zu enthalten, maximale Anzahl von Ergebnissen, die Suche nach einem Thread eine spezifische Abfrage passende usw.

+ (id)queryForUsersThreadsList; 

Alle in der API reference beschriebenen Aktionen werden von Google APIs-Client-Bibliothek für Objectiv unterstützt e-C.