Как узнать дату и время для писем сайтов социальных сетей, используя gmail-api? - PullRequest
0 голосов
/ 14 января 2019

Я пытался извлечь первое сообщение от определенного пользователя. В этом случае первое сообщение из фейсбука. Данные экстрагируются нормально, но дата и время не возвращаются Пробовал с обычными сообщениями работает.

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: (Куда не возвращаются дата и время)

Привет, Шаши Дип, Вы недавно зарегистрировались на Facebook. Чтобы завершить регистрацию в Facebook, пожалуйста, подтвердите свой аккаунт. Требуемое действие: Подтвердите свою учетную запись Facebook Эй, Шаши Дип, Вы недавно

Это первое сообщение обычного пользователя: (Куда возвращаются дата и время)

Большое спасибо. В среду, 12 декабря 2018 года, 12:07 вечера Шаши Дип

1 Ответ

0 голосов
/ 14 января 2019

Сначала позвольте мне сказать, что я не разработчик 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
}

выполняя print (msg ['snippet']), вы говорите, что вам нужно только поле фрагмента. попробуйте сделать

print (msg['internalDate'])  

Если это не помогло, пожалуйста, запустите id, хотя попробуйте меня на этой странице

...