我试图阅读和删除我的邮件为一些自动测试,我的问题是,我不能使用oauth,因为它需要用户的输入。所以我试着用一个服务帐户
但是当我运行我的代码时,我得到了一个错误。
现在我想知道我的代码或者我在Google控制台中的权限有什么问题吗?
错误:
“发生了一个或多个错误。”(错误:“unauthorized_client”,描述:“客户端未经授权使用此方法检索访问令牌,或者客户端未授权任何所请求的范围。”,Uri:“”)
发生在这里:credential.RequestAccessTokenAsync(CancellationToken.None).Result
码
private ServiceAccountCredential credential;
private GmailService Service { get; set; }
// If modifying these scopes, delete your previously saved credentials
private static string[] Scopes = { GmailService.Scope.MailGoogleCom };
private static string applicationName = "EmailReader";
private static string credentialsFile = "emailreader-289206-c91027110691.p12";
private static string keyPassword = "notasecret";
private static string serviceAccountEmail = "auristesterdienstkonto@emailreader-289206.iam.gserviceaccount.com";
private static string userEmail = "auristester1@gmail.com";
private Func<Message, bool> lastFilter;
public GmailLibary() //my constructor
{
var certificate = new X509Certificate2(
credentialsFile,
keyPassword,
X509KeyStorageFlags.Exportable);
credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
User = userEmail,
Scopes = Scopes
}.FromCertificate(certificate)
);
if (credential.RequestAccessTokenAsync(CancellationToken.None).Result)
{
Service = new GmailService(
new BaseClientService.Initializer()
{
ApplicationName = applicationName,
HttpClientInitializer = credential
}
);
}
}权限


https://stackoverflow.com/questions/68482398
复制相似问题