我一直在尝试学习如何使用 Google Analytics API 来获取网站流量数据。我一直遇到一个错误,说用户没有访问配置文件的权限。我将服务帐户中的电子邮件地址添加到用户中,并尝试使其既是有权访问所有配置文件的用户又是管理员,但都不起作用。
这是我的代码,我从这里得到的:
string scope = AnalyticsService.Scopes.AnalyticsReadonly.GetStringValue();
string clientId = "xxxxxxxx@developer.gserviceaccount.com";
string keyFile = @"C:\Users\emorris\Downloads\xxxxxxxxxx-privatekey.p12";
string keyPassword = "notasecret";
AuthorizationServerDescription desc = GoogleAuthenticationServer.Description;
X509Certificate2 key = new X509Certificate2(keyFile, keyPassword, X509KeyStorageFlags.Exportable);
AssertionFlowClient client = new AssertionFlowClient(desc, key) { ServiceAccountId= clientId, Scope = scope };
OAuth2Authenticator<AssertionFlowClient> auth = new OAuth2Authenticator<AssertionFlowClient>(client, AssertionFlowClient.GetState);
AnalyticsService gas = new AnalyticsService(new BaseClientService.Initializer() { Authenticator = auth });
DataResource.GaResource.GetRequest r = gas.Data.Ga.Get("ga:xxxxxx", "2013-05-01", "2013-05-31", "ga:visitors");
GaData d = r.Fetch();
它在最后一行遇到了问题,它给了我:
Google.Apis.Requests.RequestError
用户对此配置文件没有足够的权限。[403]
我在这里查看了似乎存在类似问题的地方,但它所说的只是将电子邮件作为用户添加到 API 控制台中,我这样做了。有谁知道我需要改变什么?