Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 访问Gmail';使用AssertionFlowClient和服务帐户创建IMAP_.net_Oauth 2.0_Gmail Imap_Google Api Dotnet Client - Fatal编程技术网

.net 访问Gmail';使用AssertionFlowClient和服务帐户创建IMAP

.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<

是否可以使用AssertionFlowClient和服务帐户通过IMAP访问我域中任何用户的邮箱。与2腿OAuth 1.0相同

这是我的密码:

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",  //