Download-Anhänge von Google Mail Verwendung von Google Mail API
Ich bin mit Gmail-API zum Zugriff auf mein gmail-Daten und google-python-api-client.
Gemäß der Dokumentation zu erhalten, die Anlage der Nachricht, die Sie Gaben ein Beispiel für python
https://developers.google.com/gmail/api/v1/reference/users/messages/attachments/get
aber der gleiche code, den ich versucht, dann erhalte ich die Fehlermeldung:
AttributeError: 'Resource' object has no attribute 'user'
Linie, wo ich immer Fehler:
message = service.user().messages().get(userId=user_id, id=msg_id).execute()
Also versuchte ich users()
durch den Austausch user()
message = service.users().messages().get(userId=user_id, id=msg_id).execute()
aber ich bin nicht immer part['body']['data']
im for part in message['payload']['parts']
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erweiterung @Eric Antwort, ich schrieb das folgende korrigierte version des GetAttachments-Funktion von docs:
Können Sie immer noch miss-Anlagen durch die folgenden @Ilja V. Schurov oder @Cam-T Antworten, der Grund ist, weil die E-Mail-Struktur kann unterschiedlich sein, basierend auf der
mimeType
.Inspiriert von diese Antwort, hier ist meine Herangehensweise an das problem.
file_data = None
was macht dann nichts mit ihm.while
- Anweisung dies ist, wo die Differenz herkommt. Die letztenelse: file_data = None
ist nur für die code-Sicherheit.payload['body']['data']
), während andere Antworten nur auf den Körper, in die Teile (payload['parts']
)getestet habe ich die codes oben und nicht gearbeitet. Und ich aktualisiert, einige Sachen für andere Beiträge. WriteFileError
Es ist auf jeden Fall "Benutzer()". Das format der Antwort-Nachricht ist weitgehend abhängig von der format-parameter, die Sie verwenden. Wenn Sie den Standard (FULL), dann Teile entweder Teil['body']['Daten'] oder, wenn die Daten groß ist, mit einem "attachment_id" Feld, das Sie übergeben können, um Nachrichten().Anhänge().get().
Wenn man sich die Anlagen docs sehen Sie dies:
https://developers.google.com/gmail/api/v1/reference/users/messages/attachments
(Wäre schön, wenn auch dies wurde bereits erwähnt auf der Haupt-Nachrichten-docs-Seite auch.)
Ich folgende änderungen vorgenommen, die für den obigen code und funktioniert völlig in Ordnung für jeden E-Mail-id enthält Anhang Dokumente, ich hoffe, dies kann helfen, da mit der API-Beispiel erhalten Sie eine Fehlermeldung mit Taste.
Google-Offizielle API für Anlagen