【问题标题】:metadataHeaders option failing with multiple headersmetadataHeaders 选项因多个标头而失败
【发布时间】:2015-02-15 14:35:30
【问题描述】:

这是我的代码 sn-p:

    if messages['messages']:
        for message in messages['messages']:
            batch.add(gmail_client.users().messages().get(userId='me', id=message['id'], format='metadata', fields="payload,threadId,id", metadataHeaders="from,to,date,subject"), callback=messageCallback)

    batch.execute()

metadataHeaders 中只有一个选项可以正常工作,但如果列出了多个标题,它根本不会返回任何标题。有什么想法吗?

【问题讨论】:

    标签: python python-2.7 gmail-api


    【解决方案1】:

    刚刚想通了。文档不正确,此参数的正确格式是字符串数组而不是单个字符串。您可以在此页面上看到错误:

    https://developers.google.com/gmail/api/v1/reference/users/messages/get

    【讨论】:

      【解决方案2】:

      你可以这样做:

      message2 =gmail_service.users().messages().get(userId='me', id=thread['id'], format='metadata', metadataHeaders=['subject','from','to','date']).execute()
      for num in range(0,4):
        if message2['payload']['headers'][num]['name'].lower() == "subject":
          subject=message2['payload']['headers'][num]['value']
        elif  message2['payload']['headers'][num]['name'].lower() == "from": 
          From=message2['payload']['headers'][num]['value']
        elif  message2['payload']['headers'][num]['name'].lower() == "to": 
          to=message2['payload']['headers'][num]['value']
        elif  message2['payload']['headers'][num]['name'].lower() == "date": 
          date=message2['payload']['headers'][num]['value']
      
      f.write("Date : %s "  % date.encode('utf8')+'\n')
      f.write("Subject : %s "  % subject.encode('utf8')+'\n')
      f.write("From : %s "  % From.encode('utf8')+'\n')
      f.write("To : %s "  % to.encode('utf8')+'\n')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多