消息的未知ID

时间:2020-05-08 00:41:30

标签: python gmail-api

脚本:

>     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()

嘿, 我希望该程序接收最早的电子邮件,将其打印出来,然后删除此消息。 但是,我不确定ID是什么,并且总是收到这样的错误:

    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 :(得分:0)

考虑到您遇到的错误Insufficient Permission,您很可能没有提供必要的范围。

要呼叫Users.messages: delete,您必须使用以下范围: https://mail.google.com/

您正在进行的其他调用(listget)的限制较少,并且接受了其他范围。这就是为什么您在尝试删除邮件时会收到错误消息的原因。

注意:

  • 即使这不是message ID的问题(您正在成功检索它),也不需要messageid = msg['id'](您之前使用过message['id'],但可以再次使用) 。

参考: