当前位置: 首页 > 知识库问答 >
问题:

在c中使用gmail API修改消息标签时出现的问题#

令狐嘉运
2023-03-14

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

出现错误:Google。API。请求。RequestError权限不足[403]错误消息[权限不足]位置[-]原因[权限不足]域[全局]

我不得不尝试从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修改消息中未读的标签

ModifyMessageRequest mods = new ModifyMessageRequest();
mods.AddLabelIds = null;
mods.RemoveLabelIds = new List<string> { "UNREAD" });
service.Users.Messages.Modify(mods, userId, messageId).Execute(); 

共有1个答案

令狐珂
2023-03-14

您需要修复您的范围要么添加

https://www.googleapis.com/auth/gmail.labels仅创建、读取、更新和删除标签。

或者只是请求

https://mail.google.com/完全访问帐户,包括永久删除线程和消息。只有当应用程序需要立即永久删除线程和消息,绕过垃圾时,才应请求此范围;所有其他操作都可以在权限较小的范围内执行

此外,RemoveableSIDS还请求标签ID

removeLabelIds[]  A list IDs of labels to remove from this message.

我不认为new List{"UNREAD"});会返回标签id。尝试lables.list找到标签和id

 类似资料:
  • 我正在尝试使用gmail api阅读gmail邮件,阅读完邮件后,我会删除邮件标签,这样我就不需要再次处理它了。我能够成功地阅读邮件,但当我试图修改邮件标签时(

  • 标签TITLE属性出现的时间怎么修改?

  • 我对java中的继承不熟悉,我有以下问题。我的基类是Plane,它的子类是PlaneComponent,PlaneComponent的子类是PasengerCom的。我的程序由11个类组成,当我忽略PasengerCom的类时,一切都是正确的。但是当我运行整个程序时,我收到了这个消息:

  • 我在使用SpecifyKind时遇到问题。我发现,如果我将字符串(“O”)应用于DateTime.Now或new DateTime(),则会使spantime不同。我不知道这是怎么可能的。我尝试将这些日期时间保存为数据库中的Utc,但由于跨度不同,时间将不正确。 我就是这样做的: 现在:2021-12-08 13:40:35现在:2021-12-08T13:40:35.1159209 01:00日

  • 我们正在将我们的事件系统迁移到函数式编程模型。我们遵循了下一个“指南”,它对消费者非常有效,但使用StreamBridge的生产者没有正确创建消息。 我们有下一个错误: 我们正在使用< code > 2021 . 0 . 0 spring-cloud版本。 通过简单的配置: 这是我们的自定义,它用于我们所有的微服务,因此,保持消息的格式很重要: 我们还使用< code>StreamBridge来生

  • 问题内容: 我使用以下代码发送邮件。文本消息发送正常,但带有附件的邮件不起作用,它给出了异常。 javax.mail.MessagingException:发送消息时发生IOException;嵌套的异常是:javax.activation.UnsupportedDataTypeException:MIME类型为multipart / mixed的无对象DCH;boundary =“ ---- =