【问题标题】:Access denied: : Missing access token for authorization. Request: MailboxService.GetThread. while using getMessages() in GmailThread拒绝访问: : 缺少用于授权的访问令牌。请求:MailboxService.GetThread。在 GmailThread 中使用 getMessages() 时
【发布时间】:2019-09-11 16:56:45
【问题描述】:

我正在尝试在已发送项目的线程中获取所有消息。在下面的代码中,我可以将变量“mails”中的所有发送线程作为[GmailThread GmailThread ..]。 mails[0].getId() 也给出了 mails[0] 的 threadId。

var mails = GmailApp.search('in:sent');
Logger.log(mails[0].getMessages());

但 mails[0].getMessages() 返回运行时错误为

Access denied: : Missing access token for authorization. Request: MailboxService.GetThread.

这是我包含的范围。

"oauthScopes": [
"https://www.googleapis.com/auth/gmail.addons.execute",
"https://www.googleapis.com/auth/script.external_request",
"https://www.googleapis.com/auth/gmail.addons.current.message.action",
"https://www.googleapis.com/auth/gmail.addons.current.action.compose",
"https://www.googleapis.com/auth/gmail.compose",
"https://www.googleapis.com/auth/gmail.addons.current.message.metadata",
"https://www.googleapis.com/auth/gmail.readonly",
"https://www.googleapis.com/auth/gmail.modify",
"https://mail.google.com/"
]

现在我想要的是获取 mails[0] 中的所有消息。

【问题讨论】:

  • 可能是用户拒绝了权限?

标签: google-apps-script gmail gmail-addons


【解决方案1】:

在 api 文档中查看 here,您可能会遗漏以下内容:

https://www.googleapis.com/auth/gmail.metadata

【讨论】:

    【解决方案2】:

    我在 Apps Script GMail 库中遇到了类似的错误。我改用 GMail API 服务。尝试使用它们https://developers.google.com/gmail/api/v1/reference/ 我没有遇到任何问题。

    【讨论】:

    • 我尝试使用 Gmail API 服务。它显示此错误“URL 未在脚本清单中列入白名单。”但是这个 url 对于每条消息都是不同的,因为它还包含 messageId。有没有办法可以将 messageId 动态添加到此 url,以便它始终被列入白名单?
    • 不要使用 URLFetchApp 来查询 API,而是使用 JS 库,这里有几个示例developers.google.com/apps-script/advanced/gmail检查它。
    猜你喜欢
    • 2021-06-20
    • 2018-12-27
    • 2017-02-20
    • 2021-06-09
    • 2017-07-06
    • 1970-01-01
    • 2020-02-23
    • 2018-02-20
    • 2018-06-12
    相关资源
    最近更新 更多