访问后端消息(不是来自事件的消息)
Access back-end messages (not the one from the event)
我曾经写过一个 GMail 小部件,当 Google 删除了对 GMail 小部件的支持时,我不得不将其转换为 Chrome 附加组件,现在我正在尝试将其转换为Gmail 插件。
我的问题是我的加载项循环遍历标签下的一系列消息并尝试回复它们,但我在尝试访问它们时遇到错误:
ERROR: Exception: Access denied: : Missing access token for per message scope authorization.
所以我的问题是,我怎样才能访问这些消息?我拥有的唯一访问令牌是触发附加组件的令牌,但不会这样做。
或者换个角度问,除了打开消息,还有更多的事件可以触发插件吗?
提前致谢。
顺便说一句,我正在尝试转换为 Gmail 附加组件的 Chrome 扩展可以在这里看到:
https://sites.google.com/site/replytomany/home
https://chrome.google.com/webstore/detail/reply-to-many/gpmpcjkhfjflmjpjjmdegpkgginijbin?hl=en
[编辑] 这就是我的 appsscript.json 的样子:
{
"timeZone": "Europe/Dublin",
"dependencies": {
"enabledAdvancedServices": [{
"userSymbol": "Gmail",
"serviceId": "gmail",
"version": "v1"
}]
},
"oauthScopes": [
"https://www.googleapis.com/auth/gmail.addons.execute",
"https://www.googleapis.com/auth/gmail.readonly",
"https://www.googleapis.com/auth/gmail.send"
],
"gmail": {
"name": "Reply To Many",
"logoUrl": "https://www.gstatic.com/images/icons/material/system/1x/receipt_black_24dp.png",
"contextualTriggers": [{
"unconditional": {
},
"onTriggerFunction": "getContextualAddOn"
}],
"primaryColor": "#41f470",
"secondaryColor": "#94f441",
"version": "TRUSTED_TESTER_V2"
}
}
您是否尝试实施访问令牌?我的意思是让您先尝试一下,因为我相信如果您没有,那就是您的问题。
// Activate temporary Gmail access token. Where 'e' is the function argument
var accessToken = e.messageMetadata.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
如果您有 "mail.google.com/",则您没有范围问题,因为这为您提供了完全访问权限。唯一的其他安全问题是访问令牌。
试试这个范围:
https://www.googleapis.com/auth/userinfo.email
我相信如果您调用 Session 对象,这就是您所需要的,'getActiveUser'
如果这不能解决您的问题,我相信我不能在没有看到您正在尝试做的事情的情况下提供帮助。
我曾经写过一个 GMail 小部件,当 Google 删除了对 GMail 小部件的支持时,我不得不将其转换为 Chrome 附加组件,现在我正在尝试将其转换为Gmail 插件。
我的问题是我的加载项循环遍历标签下的一系列消息并尝试回复它们,但我在尝试访问它们时遇到错误:
ERROR: Exception: Access denied: : Missing access token for per message scope authorization.
所以我的问题是,我怎样才能访问这些消息?我拥有的唯一访问令牌是触发附加组件的令牌,但不会这样做。
或者换个角度问,除了打开消息,还有更多的事件可以触发插件吗?
提前致谢。
顺便说一句,我正在尝试转换为 Gmail 附加组件的 Chrome 扩展可以在这里看到:
https://sites.google.com/site/replytomany/home
https://chrome.google.com/webstore/detail/reply-to-many/gpmpcjkhfjflmjpjjmdegpkgginijbin?hl=en
[编辑] 这就是我的 appsscript.json 的样子:
{
"timeZone": "Europe/Dublin",
"dependencies": {
"enabledAdvancedServices": [{
"userSymbol": "Gmail",
"serviceId": "gmail",
"version": "v1"
}]
},
"oauthScopes": [
"https://www.googleapis.com/auth/gmail.addons.execute",
"https://www.googleapis.com/auth/gmail.readonly",
"https://www.googleapis.com/auth/gmail.send"
],
"gmail": {
"name": "Reply To Many",
"logoUrl": "https://www.gstatic.com/images/icons/material/system/1x/receipt_black_24dp.png",
"contextualTriggers": [{
"unconditional": {
},
"onTriggerFunction": "getContextualAddOn"
}],
"primaryColor": "#41f470",
"secondaryColor": "#94f441",
"version": "TRUSTED_TESTER_V2"
}
}
您是否尝试实施访问令牌?我的意思是让您先尝试一下,因为我相信如果您没有,那就是您的问题。
// Activate temporary Gmail access token. Where 'e' is the function argument
var accessToken = e.messageMetadata.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
如果您有 "mail.google.com/",则您没有范围问题,因为这为您提供了完全访问权限。唯一的其他安全问题是访问令牌。
试试这个范围: https://www.googleapis.com/auth/userinfo.email 我相信如果您调用 Session 对象,这就是您所需要的,'getActiveUser'
如果这不能解决您的问题,我相信我不能在没有看到您正在尝试做的事情的情况下提供帮助。