7

这段代码被剪断了:

  credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                GoogleClientSecrets.Load(stream).Secrets,//read from client secret.json file
                Scopes,
                "user",
                CancellationToken.None).Result;

   // Create Gmail API service.
   var service = new GmailService(new BaseClientService.Initializer()
   {
      HttpClientInitializer = credential,
      ApplicationName = ApplicationName,
   });

   UsersResource.LabelsResource.ListRequest request = service.Users.Labels.List("me");
   WatchRequest body = new WatchRequest()
        {
            TopicName = "projects/push-notifications-ver3/topics/mytopic",
            LabelIds = new[] {"INBOX"}
  string userId = "me";
  UsersResource.WatchRequest watchRequest = service.Users.Watch(body, userId);
  WatchResponse test = watchRequest.Execute();

出现错误:向 Cloud PubSub projects/push-notifications-ver3/topics/mytopic 发送测试消息时出错:用户无权执行此操作。[403]

主题是通过订阅创建的,当前用户作为主题所有者授予了权限任何建议为什么用户未授权?

4

1 回答 1

0

您是否为给定用户完成了 OAuth 流程?另外,您是否将 AuthorizeAsync() 方法中的“用户”一词替换为经过身份验证的用户?如果是,则尝试使用新的客户端机密文件执行此操作,并检查 PubSub Scope 是否存在于变量范围中。

我面临类似的问题,结果证明是这些问题之一。也可能对你有用。

于 2015-12-04T09:50:43.203 回答