неизвестный идентификатор сообщения - PullRequest
0 голосов
/ 08 мая 2020

Скрипт:

>     results = service.users().messages().list(userId='me', labelIds=['INBOX']).execute()
>     messages = results.get('messages', [])
> 
>     if not messages:
>         print("No messages found.")
>     else:
>         print("Message snippets:")
>         for message in messages[::-1]:
>             msg = service.users().messages().get(userId='me', id=message['id']).execute()
>             print(msg['snippet'])
>             messageid = msg['id']
>             service.users().messages().delete(userId='me', id=messageid).execute()
>             break
> 
> if __name__ == '__main__':
>     main()

Эй, я хотел, чтобы эта программа взяла мое самое старое электронное письмо, распечатала его, а затем удалила это сообщение. Однако я не уверен, что это за идентификатор, и я всегда получаю такие ошибки:

    Message snippets:
Google Banner Hallo Gmail, willkommen bei Google. Mit Ihrem neuen Konto können Sie Google-Produkte, ‑Apps und ‑Dienste nutzen. Für den Anfang haben wir hier einige nützliche Tipps für Sie
. Konto
Traceback (most recent call last):
  File "gmail.py", line 52, in <module>
    main()
  File "gmail.py", line 48, in main
    service.users().messages().delete(userId='me', id=messageid).execute()
  File "C:\Users\25jul\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\googleapiclient\_helpers.py", line 134, in
 positional_wrapper
    return wrapped(*args, **kwargs)
  File "C:\Users\25jul\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages\googleapiclient\http.py", line 907, in exe
cute
    raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/gmail/v1/users/me/messages/171f0100542b03d1? returned "Insufficient Permission">

спасибо за ответы, Юлий

1 Ответ

0 голосов
/ 08 мая 2020

Учитывая ошибку, которую вы получаете Insufficient Permission, вы, скорее всего, не предоставляете необходимую область видимости.

Чтобы вызвать Users.messages: delete , вы должны использовать эту область : https://mail.google.com/

Другие звонки, которые вы делаете (list и get), менее строгие, и принимаются другие объемы. Вот почему вы получаете ошибку именно при попытке удалить сообщение.

Примечание:

  • Несмотря на то, что это не проблема message ID (вы успешно получаете его ) нет необходимости в messageid = msg['id'] (раньше вы использовали message['id'], можете использовать его снова).

Ссылка:

...