首页 > 解决方案 > 使用 gmail api 更新标签时出现 403 错误

问题描述

我正在更新消息的标签。我收到一个 403 错误,如下所示。

 if (!emailInfoResponse.LabelIds.Contains(SEND4PROCESSING))
                    {
                        Console.WriteLine("PROCESS ALERT  " + subject);
                        ModifyMessageRequest mods = new ModifyMessageRequest();
                        List<String> labelsToAdd = new List<String>()
                        {
                            SEND4PROCESSING
                        };
                        mods.AddLabelIds = labelsToAdd;
                        //  mods.RemoveLabelIds = labelsToRemove;
                        service.Users.Messages.Modify(mods, myemail, message.Id).Execute();


                    }

完整代码@此处的完整代码和异常@第 134 行

    Google.GoogleApiException
  HResult=0x80131500
  Message=Google.Apis.Requests.RequestError
Insufficient Permission [403]
Errors [
    Message[Insufficient Permission] Location[ - ] Reason[insufficientPermissions] Domain[global]
]
  Source=Google.Apis
  StackTrace:
   at Google.Apis.Requests.ClientServiceRequest`1.<ParseResponse>d__31.MoveNext()
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Google.Apis.Requests.ClientServiceRequest`1.Execute()
   at IBTrading.GmailQuickstart..ctor() in C:\Users \Documents\Visual Studio 2019\Projects\IBTrading\GmailQuickstart.cs:line 134
   at IBTrading.Program.Main(String[] args) in C:\Users \Documents\Visual Studio 2019\Projects\IBTrading\Program.cs:line 14

我记得设置更新权限,如下面的屏幕截图所示。在此处输入图像描述

标签: c#gmail-api

解决方案


听起来像范围的问题

您的代码中的第 22 行是

static string[] Scopes = { GmailService.Scope.MailGoogleCom };

文档指定Users.messages: modify

此请求需要至少具有以下范围之一的授权:

范围

https://mail.google.com/

https://www.googleapis.com/auth/gmail.modify

另请注意,在您更改范围后

GmailService.Scope.GmailReadonly

您需要删除以前的凭据/令牌文件。


推荐阅读