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 监视请求无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

使用 smtp 和 Gmail 的 Phpmailer 无法正常工作 - 连接超时

fwrite无法正常工作,并写入重复的信息

使用 Gmail API 创建过滤器

Google 工作区:通过 API 激活 gmail

gmail API 中的观看请求不起作用

gmail.com 无法在 webview 上工作(登录后)