0

我一直在尝试访问 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,
        });
4

0 回答 0