Gmail API 监视请求无法正常工作
Posted
技术标签:
【中文标题】Gmail API 监视请求无法正常工作【英文标题】:Gmail API watch request not working properly 【发布时间】:2018-02-21 19:35:57 【问题描述】:There are many post on this same topic but still there is no exact solution to solve this issue.
即使在下面链接的 google API 中,也有一个测试 API 的选项 https://developers.google.com/gmail/api/v1/reference/users/watch
此 API 会引发类似 Invalid Topic Name does not match
的错误,但我已在 pub sub 中创建了该主题,并且已在其上发布了消息,该主题运行良好,但我也收到以下错误。我收到 400 错误
"error": "errors": [
"domain": "global",
"reason": "invalidArgument",
"message": "Invalid topicName does not match projects/google.com:apisexplorerconsole/topics/*" ],"code": 400,"message":"Invalid topicName does not match projects/google.com:apisexplorerconsole/topics/*"
我尝试在客户端调用此 API,如下所示
gapi.client.gmail.users.watch(
'userId': 'me',
"topicName": "projects/fast-metric-178608/topics/Test"
).then(function (response)
console.log(response)
);
下面是输出,我收到 403 错误
"error": "errors": [
"domain": "global",
"reason": "forbidden",
"message": "Error sending test message to Cloud PubSub projects/fast-metric-178608/topics/Test : User not authorized to perform this action." ],"code": 403, "message": "Error sending test message to Cloud PubSub projects/fast-metric-178608/topics/Test : User not authorized to perform this action."
【问题讨论】:
您收到 400 错误,因为您使用的是 API 资源管理器。如相关SO post 中所述,请勿按照其他帖子中的建议使用 API 资源管理器对其进行测试。您可以按照指南 (using your own service-account client) 中的说明使用 Cloud Pub/SUb 调用。 最后,检查您是否按照post 和forum 中的说明正确授予您的服务帐户在 Pub/Sub 中发帖的权限。 感谢您的回复,我已经创建了服务帐户,并且我将 clientId 作为身份验证方法的参数传递 var clientId = '89989545454-xyz.apps.googleusercontent.com'; function checkAuth() gapi.auth.authorize( client_id: clientId, scope: scopes, immediate: true , handleAuthResult); 【参考方案1】:https://console.cloud.google.com/cloudpubsub/topicList
选择您的主题并 设置您的主题 PERMISSIONS allUser 并选择一个角色 Pub/Sub Admin
【讨论】:
以上是关于Gmail API 监视请求无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章