这段代码snniped:
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项目/ push-notifications-ver3 / topics / mytopic时出错:用户未被授权执行此操作。 [403]
主题是通过订阅创建的,作为主题的所有者授予当前用户权限 有关用户未授权的任何建议吗?
答案 0 :(得分:0)
您是否已完成给定用户的OAuth流程?另外,您是否使用经过身份验证的用户替换AuthorizeAsync()方法中的“user”一词?如果是,则尝试使用新的客户机密码文件,并检查变量范围中是否存在PubSub Scope。
我面临类似的问题,结果证明是其中一个问题。也可能适合你。