我正在使用Node.js和googleapis软件包。连同护照进行身份验证。

当我在Node.JS应用上运行此代码时:

 function start(user, oauth2){
    // Start watching for new emails
    gmail.users.watch({
    auth: oauth2,
    userId: 'me',
      resource: {
        topicName: 'projects/outrigger-170662/topics/gmail',
        labelIds: ["Inbox"]
      }                                                                   `
    }, function(err){
      if (err){
        console.log(err);
      }
    });                                                                                                                            }



  注意:实际上我正在传递用户对象和oauth2client,所以这不是问题。


我收到此错误:

     data: { error: [Object] } },
  code: 400,
  errors:
   [ { domain: 'global',
       reason: 'invalidArgument',
       message: 'Invalid topicName does not match projects/outrigger-170622/topics/*' } ] }


我正在使用以下范围:

  'email',
  'profile',
  'https://www.googleapis.com/auth/calendar',
  'https://mail.google.com/',
  'https://www.googleapis.com/auth/contacts'


我已经在我的Google云控制台上创建了gmail主题,并将allUsers设置为发布者。我有什么想念的吗?

该站点位于https://outrigger.herokuapp.com/

最佳答案

根据错误消息,您的实际项目ID为outrigger-170622,但是在您的请求中,您正在发送outrigger-170662。看来此错误是由662 vs 622的错字引起的。请尝试解决此问题,看看错误是否消失。

07-24 21:51