【发布时间】:2021-12-11 02:04:39
【问题描述】:
我正在尝试做一个非常简单的任务。使用 Google.Apis 的 api 获取电子邮件列表。 这是我得到的错误:
Google.Apis.Requests.RequestError
Delegation denied for association8385@gmail.com [403]
Errors [
Message[Delegation denied for association8385@gmail.com] Location[ - ] Reason[forbidden]
Domain[global] ]
这是我的代码:
using (FileStream stream = new(emailSettings.Value.ClientCredentials, FileMode.Open,
FileAccess.Read))
{
string folderPath = emailSettings.Value.CredentialsInfo;
string filePath = Path.Combine(folderPath, "APITokenCredentials");
_credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.FromStream(stream).Secrets,
_scopes,
"user",
CancellationToken.None,
new FileDataStore(filePath, true)).Result;
}
_service = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = _credential,
ApplicationName = emailSettings.Value.ApplicationName
});
UsersResource.MessagesResource.ListRequest listRequest =
_service.Users.Messages.List(_hostAddress);
listRequest.LabelIds = "INBOX";
listRequest.IncludeSpamTrash = false;
listRequest.Q = "is:unread";
ListMessagesResponse listReqponse = listRequest.Execute() ;
当我尝试执行 listRequest.Execute()
时发生崩溃我已启用 Gmail API 和 People Api。我已创建 ClientCredentials json。我还创建了我的 OAuth 2.0 客户端 ID 作为 Web 应用程序。创建服务时,会创建必要的令牌。对于这个简单的任务,我怀疑这是一个配置问题。
谁能给我指出正确的方向
【问题讨论】:
标签: c# google-oauth gmail-api google-api-dotnet-client