如何使用gmail-api获取社交网站电子邮件的日期和时间?

时间:2019-01-14 12:33:47

标签: python python-3.x gmail-api

我一直在尝试从特定用户提取第一条消息。在这种情况下,来自Facebook的第一条消息。 数据可以提取,但日期和时间未返回 尝试使用普通消息正常工作。

from googleapiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools
import time
from datetime import date

SCOPES = 'https://www.googleapis.com/auth/gmail.readonly'

def main():

    store = file.Storage('token.json')
    creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('credentials.json', SCOPES)
    creds = tools.run_flow(flow, store)
service = build('gmail', 'v1', http=creds.authorize(Http()))

# Call the Gmail API to fetch INBOX

results = service.users().messages().list(userId='me', q='from:security@facebookmail.com',labelIds = ['INBOX']).execute()
messages = results.get('messages', [])


if not messages:
    print ("No messages found.")
else:
    print ("Message snippets:")

for message in messages:

    msg = service.users().messages().get(userId='me', id=messages[-1]['id']).execute()
    print (msg['snippet'])



if __name__ == '__main__':
    main()

这是Facebook的第一条消息:(日期和时间未返回的地方)

Shashi Deep嗨,您最近注册了Facebook。要完成您的Facebook注册,请确认您的帐户。需要采取的措施:确认您的Facebook帐户Hey Shashi Deep,您最近

这是普通用户的第一个消息:(返回日期和时间的地方)

非常感谢。在2018年12月12日,星期三,下午12:07 Shashi Deep

1 个答案:

答案 0 :(得分:0)

首先让我说我不是Python开发人员。但是我可以阅读。

msg = service.users().messages().get(userId='me', id=messages[-1]['id']).execute()
print (msg['snippet'])

message.get的响应应如下所示

{
 "id": "1684c9dc1f5fe52f",
 "threadId": "1684bfd8ff98b154",
 "labelIds": [
  "CHAT"
 ],
 "snippet": "",
 "historyId": "4608454",
 "internalDate": "1547473633781",
 "payload": {
  "partId": "",
  "mimeType": "text/html",
  "filename": "",
  "headers": [
   {
    "name": "From",
    "value": "Linda Lawton \u003cxxxx@gmail.com\u003e"
   }
  ],
  "body": {
   "size": 6,
   "data": "8J-krvCfpKLwn6Su"
  }
 },
 "sizeEstimate": 100
}

通过打印(msg ['snippet']),您说的是只需要代码段字段。尝试做

print (msg['internalDate'])  

如果这样做没有帮助,请运行ID,尽管请在此页面message.get上尝试我,我希望看到您遇到问题的消息的json响应。