Я хочу читать письма Gmail в своем собственном приложении для Android. Есть ли способ сделать это с помощью Android-sdk? Если нет, то каковы другие варианты? разбор атома gmail?
Чтение писем Gmail с помощью SDK для Android
Ответ 1
Я спрашиваю и отвечаю на этот вопрос здесь. Вам нужен код Gmail.java(в вопросе есть ссылка), и вы должны понимать, что вы не должны использовать этого недокументированного провайдера
Есть ли хорошие примеры коротких примеров, которые просто читают новое сообщение gmail?
Ответ 2
Возможно использование API GMail, вот несколько шагов, которые я нашел полезными.
- Начните с официального примера, чтобы запустить GMailAPI, см. здесь
- Следуя инструкциям, я нашел полезным прочитать о подписании приложения здесь, чтобы получить Step1 + 2 в правом правиле.
- При запуске примера вы можете использовать информацию здесь для доступа к сообщениям. Вы можете, например, замените реализацию в MakeRequestTask.getDataFromApi
-
Обязательно добавьте, по крайней мере, область только для чтения для правильных разрешений. В образце области определены в массиве:
private static final String[] SCOPES = { GmailScopes.GMAIL_LABELS, mailScopes.GMAIL_READONLY };
-
Мое намерение состояло в том, чтобы прочитать все предметы. Я использовал следующий код (который является адаптированным методом getDataFromApi из официального образца):
private List<String> getDataFromApi() throws IOException { // Get the labels in the user account. "me" referes to the authentized user. String user = "me"; List<String> labels = new ArrayList<String>(); ListMessagesResponse response = mService.users().messages().list(user).execute(); for (Message message : response.getMessages()) { Message readableMessage = mService.users().messages().get(user, message.getId()).execute(); if (readableMessage.getPayload() != null) { for (MessagePartHeader header : readableMessage.getPayload().getHeaders()) { if (header.getName().compareToIgnoreCase("Subject") == 0) { labels.add(header.getValue()); } } } } return labels; }