访问google api时尝试模拟帐户时出错(针对我的业务)

时间:2018-05-14 13:10:56

标签: google-api google-api-dotnet-client google-my-business-api

我一直在尝试访问Googles Mybusiness API,但它似乎比文档说的更难。

我创建了一个服务帐户,可以访问我能想到的所有内容,但在尝试连接或访问API资源时,我收到错误消息:

'Error:"invalid_request", Description:"Invalid impersonation prn email address.", Uri:""'

据我所知,这表示该服务帐户无权模拟在Google我的商家中设置为管理员的帐户。

我发现的几乎所有搜索结果都提到服务帐户应该是G Suite管理员。服务帐户或GMB管理员都不在任何与G Suite相关的设置中,因此即使将该权限添加到服务帐户也无效。

如何授予对服务帐户API的访问权限?

我尝试了几种连接方法。使用证书是我能够添加用户名的唯一一个我想要冒充的用户:

        var certificate = new X509Certificate2(System.IO.Path.Combine(path, p12FileName), "notasecret", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable);

        var initializer = new ServiceAccountCredential.Initializer(serviceAccount)
        {
            Scopes = new[] { "https://www.googleapis.com/auth/plus.business.manage" },
            User = user,
        };

        var credential = new ServiceAccountCredential(initializer.FromCertificate(certificate))
        {
        };

        var myBusinessService = new MyBusinessService(new BaseClientService.Initializer()
        {
            HttpClientInitializer = credential,
        });

0 个答案:

没有答案