.net 访问Gmail';使用AssertionFlowClient和服务帐户创建IMAP
是否可以使用AssertionFlowClient和服务帐户通过IMAP访问我域中任何用户的邮箱。与2腿OAuth 1.0相同 这是我的密码:.net 访问Gmail';使用AssertionFlowClient和服务帐户创建IMAP,.net,oauth-2.0,gmail-imap,google-api-dotnet-client,.net,Oauth 2.0,Gmail Imap,Google Api Dotnet Client,是否可以使用AssertionFlowClient和服务帐户通过IMAP访问我域中任何用户的邮箱。与2腿OAuth 1.0相同 这是我的密码: X509Certificate2 certificate = new X509Certificate2(...) AuthorizationServerDescription server = new AuthorizationServerDescription {...}; List<string> scope = new List<
X509Certificate2 certificate = new X509Certificate2(...)
AuthorizationServerDescription server = new AuthorizationServerDescription {...};
List<string> scope = new List<string> {
"https://mail.google.com/",
"https://www.googleapis.com/auth/userinfo#email" };
AssertionFlowClient provider = new AssertionFlowClient(server, certificate)
{
ServiceAccountId = SERVICE_ACCOUNT_EMAIL,
Scope = string.Join(" ",scope.ToArray()),
};
IAuthorizationState grantedAccess = AssertionFlowClient.GetState(provider);
accessToken = grantedAccess.AccessToken;
using (Imap client = new Imap())
{
client.ConnectSSL("imap.gmail.com");
client.LoginOAUTH2("user@mydomain.com", accessToken);
...
}
此服务帐户的“管理API客户端访问”在cpanel上配置为“电子邮件(读/写/发送)”
AssertionFlowClient/DotNetOpenAuth错误表明没有人尝试过这种方法
这有可能吗?所以谷歌似乎忘记了在他们的文档中包含这一小细节:
AssertionFlowClient provider = new AssertionFlowClient(server, certificate)
{
ServiceAccountId = SERVICE_ACCOUNT_EMAIL,
Scope = "https://mail.google.com/",
ServiceAccountUser = "user@mydomain.com", // <- important
};
AssertionFlowClient provider=新的AssertionFlowClient(服务器、证书)
{
ServiceAccountId=服务帐户电子邮件,
范围=”https://mail.google.com/",
ServiceAccountUser=”user@mydomain.com“,//所以谷歌似乎忘了在他们的文档中包含这一小细节:
AssertionFlowClient provider = new AssertionFlowClient(server, certificate)
{
ServiceAccountId = SERVICE_ACCOUNT_EMAIL,
Scope = "https://mail.google.com/",
ServiceAccountUser = "user@mydomain.com", // <- important
};
AssertionFlowClient provider=新的AssertionFlowClient(服务器、证书)
{
ServiceAccountId=服务帐户电子邮件,
范围=”https://mail.google.com/",
ServiceAccountUser=”user@mydomain.com", //