谷歌';s Gmail API Python下载附件

谷歌';s Gmail API Python下载附件,python,api,download,gmail,email-attachments,Python,Api,Download,Gmail,Email Attachments,我试图使用Google的API-s下载电子邮件附件,但在此过程中,我遇到了一些有趣的错误: 使用Google的users.messages.attachments:get方法的示例(),我得到了一个KeyError,说没有像data这样的关键字 使用中建议的方法,TypeError:“资源”对象不可调用在以下行中引发: att=gmail\u service.users().messages().attachments().get(userId=user\u id,messageId=msg\u

我试图使用Google的API-s下载电子邮件附件,但在此过程中,我遇到了一些有趣的错误:

使用Google的
users.messages.attachments:get方法的示例(),我得到了一个
KeyError
,说没有像
data
这样的关键字

使用中建议的方法,
TypeError:“资源”对象不可调用
在以下行中引发:

att=gmail\u service.users().messages().attachments().get(userId=user\u id,messageId=msg\u id,id=att\u id)。execute()

我的代码的相关部分是:

提前非常感谢您,并对违反任何惯例表示歉意。我是一个爱好程序员,我的专业甚至与CS无关

以及电子邮件的原始信息:

{u'historyId':u'87616',u'id':u'14cc2903d8201ce5',u'snippet':u'Lorem ipsum dolor sit amet,concertetur adipsite elite.Maecenas dapibus leo auctor vuputate',u'sizeEstimate':12503,u'threadId':u'14cc2903d8201ce5',u'labelIds':[u'INBOX',u'IMPORTANT',u'CATEGORY'PERSONAL',u'private',u'CATEGORY'UNREAD',u'payload':{u'mimeType':u'multipart/mixed',u'headers':[{u'name':u'Delivered-To',u'value':u'nagytomi1992@gmail.com“},{u'name':u'Received',u'value':u'by 10.27.172.12,SMTP id为V12CSP330131WLE;Thu,2015年4月16日07:09:35-0700(PDT)},{u'name':u'X-Received',u'value':u'by 10.194.47.165,SMTP id为E5mr5943928wjn.128.1429193375163;Thu,2015年4月16日07:09:35-0700(PDT)},{u'name':u'Return-Path',u'value':u'},{u'name':u'Received',u'value':u'from DUB004-OMC2S3.hotmail.com(DUB004-OMC2S3.hotmail.com.[157.55.1.142])通过mx.google.com,ESMTPS id为k8si15998291wia.75.2015.04.16.07.09.35(version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);周四,2015年4月16日07:09:35-0700(PDT)},{u'name':u'Received-SPF',u'value':u'passnghuytungi@windowslive.com指定157.55.1.142为允许的发送者)客户端ip=157.55.1.142;'},{u'name':u'Authentication-Results',u'value':u'mx.google.com;spf=pass(google.com:domain ofnghuytungi@windowslive.com将157.55.1.142指定为允许的发件人)smtp.mail=nghuytungi@windowslive.com“},{u'name':u'Received',u'value':u'from DUB122-W21([157.55.1.137])通过DUB004-OMC2S3.hotmail.com通过TLS安全通道与Microsoft SMTPSVC(7.5.7601.22751);\t Thu,2015年4月16日07:09:34-0700'},{u'name':u'X-TMN',u'value':u'[u8z/pkebpkoutrjcka0traso7cgfyeau5zpseyjzy0=],{u'name':u'X-origing-Email',u'value':u'[nghuytungi@windowslive.com]'},{u'name':u'Message-ID',u'value':u'},{u'name':u'Return-Path',u'value':u'nghuytungi@windowslive.com“},{u'name':u'Content-Type',u'value':u'Tung-Nguyen-Huy'},{u'name':u'From',u'value':u'Tung-Nguyen-Huy'},{u'name':u'To',u'value':u'nagytomi1992@gmail.com“},{u'name':u'Subject',u'value':u'Chicago'},{u'name':u'Date',u'value':u'Thu,2015年4月16日16:09:34+0200'},{u'name':u'Importance',u'value':u'Normal'},{u'name':u'MIME-Version',u'value':u'X-OriginalArrivalTime',u'value':u'04 2015年4月16日14:09:34.0855(UTC)FILETIME=[F77AD970:01D0784E]},
u'parts':[{u'mimeType':u'multipart/alternative',u'headers':[{u'name':u'Content-Type',u'value':u'multipart/alternative;boundary=“\u 2c3faa5d-3517-45ad-9ae0-82a26eb7b6e5'”],u'parts':[{u'mimeType':u'text/plain',u'headers':[{u'name':u'Content-Type',u'value':u'text/plain;charset=“iso-8859-1”,{u'name':u'Content-Transfer-Encoding',u'value':u'quoted-printable'}],u'body':数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据来源:数据HZ1BHB1D2)2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 GLUDGVYZHVTLZPDMFTDXMGYXQGAGVUZHJLCML0IGRPYW0UIEFLBMVHBIBPBNRLCMR1BSBJB25ZXF1YXQGCG9YDGGEUIE5HBSBHIGF1Z3VLIHNLZCBCHN1BSB2ZZXN0AWJ1BHVTIHBZRPDW0GCXVPCYBPZCBKDWKUIEFLBBZCBYB1CYBLBLBMLZYB9ZIGZYZZYBZZYBZYBZYB0IGB8IGFBYB8IGFBYB8IGFBYB8YB8BZB8YB8IGFBYB8YBZB8LZB8YBZB8YB8YBZBZBZBZB8YB8YB8YBZBZB8LZBZB8LZB8LZB8LZB8LZB8LZZZZ1IGVNZXN0YXMGBGLNDWxHbBGXLBNRLC3F1ZS4GRhVPCYB1CM5HIHRLBGX1CYWGCHJLDGL1BSBUB24GZVpC21VzCBUBB24SiHZPdPdPdMyGzLdKdWwKUIEFSAxF1YW0GzQGzXGGBwV0DxMuieluiLgV4IGXvCTLcCBMAW5YV5YLkZV0CGLbB2JvCnRcYB22ZWwGB2ZWwGB3JJAS4JJAS4GvQQGdNv0VxVxWxWyGv0KyGyGyGyGyGyGyGyGyGyGyGyWf1BxWf1BxWf1BxWyWyWyWyWf2ZZZZZZWyWyWyCNVTIGF1Y3RVCIBHDWD1ZS4GU2VKIGVZDCBUDW5JLCBJB21TB2VIGHLBRYZXJPDCBMYWNPBGLZAXMGYWMSIG1VBGVZDLIGZZ25PC3NPSBHCMN1LIBODWXSYW0GDMVSIGVYB3MGBXDWUUIEFSAXF1YW0GZNJPBGXHIHZLBVYXPCYBLC9ZLCB2ZWWGCGVZBGLZCG1IG1PIGNMD1ZSBZBZBZZZBYBZZZYBZLCWWWWZYBZYBZHMLZLZYBZYBZYBCLZLZYBZHMLZYBZLZLZHZZHZZZHZZLZLZLZHZHZZZZHZLZLZHZLZHZLZHZHZHZZZ2.2 2 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZBMZXJTZW50DW0UIELIG1HBGVZDWFKYSWYW50ZSB2ZWWGBWFSZXN1YWRHIHNJWXLCMLZCxVLLCBUZXF1ZSBLCMF0IG1HDHRPCYBTYWWUYSWGBM9UIGZY2SAXNPCYBTYXVYAXMGDGVSBHVZIG5VBIBL9ZIBBZW5LYW4GDML0YWUGZJVCYBDW0DXMGBGLNxHIHZPDYCMGLUJ1CYBUB
import codecs

message =  gmail_service.users().threads().get(id=thread['id'],userId='me',format='metadata').execute()['messages']
themessage = gmail_service.users().messages().get(userId='me', id=message[0]['id']).execute()
attachmentid = themessage['payload']['parts'][1]['body']['attachmentId'].encode('utf-8')
attachment = gmail_service().users().messages().attachments().get(userId='me',messageId=message[0]['id'], id=attachmentid).execute()