我正在尝试删除邮件标签。我能够成功阅读邮件,但是当我尝试修改邮件标签时我遇到了问题
发生错误:Google.Apis.Requests.RequestError 许可不足[403] 错误 消息[权限不足]位置[ - ]原因[insufficientPermis sions]域[全球]
我不得不尝试从json创建一个服务,但它有同样的问题。 这是我的代码
var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = clientId,
ClientSecret = clientSecret,
},
new[] { GmailService.Scope.MailGoogleCom, GmailService.Scope.GmailModify, GmailService.Scope.GmailCompose },//new[] { GmailService.Scope.GmailModify, GmailService.Scope.GmailCompose, GmailService.Scope.GmailReadonly },
"user",
CancellationToken.None).Result;
var service = new GmailService(new BaseClientService.Initializer
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
然后我调用api来修改消息中的标签UNREAD
ModifyMessageRequest mods = new ModifyMessageRequest();
mods.AddLabelIds = null;
mods.RemoveLabelIds = new List<string> { "UNREAD" });
service.Users.Messages.Modify(mods, userId, messageId).Execute();
答案 0 :(得分:0)
您需要修改范围或添加
https://www.googleapis.com/auth/gmail.labels仅创建,阅读,更新和删除标签。
或只是要求
https://mail.google.com/对帐户的完全访问权限,包括永久删除线程和邮件。只有当您的应用程序需要立即永久删除线程和消息时,才应该请求此范围,绕过“废纸篓”;所有其他操作都可以使用较不宽松的范围执行。
removelablesids也会请求标签 ID
removeLabelIds[] A list IDs of labels to remove from this message.
我不认为 new List {“UNREAD”}); 将返回标签ID。尝试lables.list找到标签和那些