c# - 使用 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
解决方案
听起来像范围的问题
您的代码中的第 22 行是
static string[] Scopes = { GmailService.Scope.MailGoogleCom };
的文档指定Users.messages: modify
:
此请求需要至少具有以下范围之一的授权:
范围
另请注意,在您更改范围后
GmailService.Scope.GmailReadonly
您需要删除以前的凭据/令牌文件。
推荐阅读
- excel - 从 Excel 宏创建数据透视图
- python - 如何有效地删除所有数字作为 pandas 上的数据清理?
- c# - 当方法返回类型 IEnumerable 时,方法返回 List。但 GetType 显示为 List
- html - 输入字段宽度不受边距影响
- android-studio - 安装失败并显示消息 Failed to finalize session : INSTALL_PARSE_FAILED_NO_CERTIFICATES
- php - 如何使用来自 PhpStorm 的 .htaccess 文件?
- javascript - Hoare 快速排序算法无法正常工作
- rust - 不能在循环中多次借用可变错误
- image - 在Linux中使用file命令的输出分析图像导致Linux shell脚本错误?
- scala - 如何确定问题是否可以在 Scala 中使用尾递归解决