2014-09-30 5 views
5

Gmail API의 작동 방식을 이해하려고합니다. 내 목표는받은 편지함에있는 사용자의 모든 이메일 목록을 검색하여 NSArray에 다운로드하는 것입니다. iOS 용 Gmail API - 이메일 받기

  1. 구글에서 제공하는 frameworks를 사용하여 OAuth 2.0을 내 iOS 앱에 권한을 부여 :

    는 현재 워크 플로는 다음과 같이 보인다. 나는 이 단계를 완료하고 내 응용 프로그램은 성공적으로 Gmail 계정을 인증 할 수 있습니다.

  2. 다운로드 이메일 :

    :

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

내 질문 GET 다음 documentation에서

는,이 메시지의 목록을 표시 할 수있는 API 호출 것 같다

이 AP를 만들기 위해 자체적 인 목표 -C 래퍼를 작성해야합니까 메시지를 다운로드하기 위해 전화를 걸거나 MailCore과 같은 것을 사용하면 더 쉽게이 작업을 수행 할 수 있습니까? 내가 이해할 수 있듯이이 API는 IMAP을 대신합니다. 이는 MailCore이 구현 한 것입니다.

나는이 예제를 https://developers.google.com/gmail/api/quickstart/quickstart-python과 같이 파이썬에서 수행하는 방법을 알고 있지만 Objective-C에이 코드를 어떻게 포팅하는지는 알 수 없다.

답변

9

기본 워크 플로우가 정확하고 당신이 원하는 것을 달성하기 위해 여러 가지 방법이 있습니다

  1. Gmail의 사서함에 액세스하고 메일을 보내는 데 사용할 수있는 편안하고 API 인 의 Gmail API

    . API는 메일 읽기, 작성 및 보내기와 같은 Gmail 사용자 인터페이스를 통해 사용할 수있는 많은 기본 작업을 지원합니다. 또한 스레드 및 메시지의 레이블을 관리하고 특정 메시지 및 스레드를 쿼리 할 수 ​​있습니다.

    • 당신은 API reference에 설명 된 differents의 엔드 포인트에 대한 올바른 HTTP 요청을 만들기 위해 API 주위에 자신의 목표 - C 래퍼를 쓸 수 있지만 많은 작업, 당신은 당신이 필요로하는 모든 것을 작성해야, 오류 관리 유효성 검사 등 ...

    • iOS 및 Mac OS X 응용 프로그램 용 JSON 기반 Google API에 액세스하려면 Google APIs Client Library for Objective-C을 사용하는 것이 좋습니다. 이 API는 Gmail을 포함한 많은 Google 제품에 대한 지원을 포함합니다.

  2. IMAP 및 SMTP 프로토콜은 Gmail에서 지원하여 OAuth 2.0 인증을 포함합니다.

    • 원하는 SASL을 지원하는 기존 IMAP 및 SMTP 라이브러리를 사용할 수 있으며 Gmail에서 지원하는 SASL XOAUTH2 메커니즘과 호환되어야합니다. 제안한 것처럼 예를 들어 MailCore을 사용할 수 있습니다.

당신이 Gmail이 API는 사용자의 Gmail 데이터에 대한 권한이 부여 된 액세스를위한 최선의 선택은 그래서 Gmail의 사서함과 상호 작용하는 가장 쉬운 방법을 찾고 나에게 보인다.

나는 Google APIs Client Library for Objective-C으로 가고 싶다. API 주위에 독자적인 래퍼를 작성할 필요가 없으며, 바로 사용할 수있다. ,

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

Google APIs Client Library for Objective-C 결과에서 스팸 & 휴지통 폴더를 포함하는 가능성과 같은 여러 옵션과 같은 일을 당신에게 방법을 제공합니다 :

당신은 스레드의 페이지를 검색하는 파이썬 예제 코드를 보았다 결과의 최대 수, 특정 쿼리와 일치하는 스레드에 대한 검색 등

+ (id)queryForUsersThreadsList; 

API reference에 설명 된 모든 작업은 Objectiv 용 Google API 클라이언트 라이브러리에서 지원 e-C.