我正在尝试删除消息标签。我能够成功地阅读邮件,但是当我试图修改消息标签时,我有一个问题
出现错误:Google.Apis.Requests.RequestError许可不足[403]错误消息[权限不足]位置[-]原因[insufficientpermission .锡安)域(全球)
我不得不尝试从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();
您需要修复您的作用域,或者添加
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。试着做标签。列表查找标签和id