问题,当我修改邮件标签使用gmail API在c#



我正在尝试删除消息标签。我能够成功地阅读邮件,但是当我试图修改消息标签时,我有一个问题

出现错误: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

相关内容

  • 没有找到相关文章

最新更新