我一直在尝试从特定用户提取第一条消息。在这种情况下,来自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
答案 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响应。