我一直在努力学习如何使用Google AnalyticsAPI来获取网站流量数据。我一直遇到错误,说用户没有访问配置文件的权限。我将服务帐户中的电子邮件地址添加到用户,并尝试将其设置为可以访问所有配置文件的用户和管理员,但都没有工作。
这是我的代码,我是从here获得的:
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]
我看了here,似乎有类似的问题,但它说的只是在API控制台中添加电子邮件,我做了。有人知道我需要改变什么吗?
答案 0 :(得分:1)
要确认 - 在原始帖子中,您说您在“API控制台”中添加了电子邮件。但实际上,您需要使用Google Analytics网页界面将电子邮件添加到Google Analytics配置文件中。是你做的吗?仅当您提出请求的用户ID不在分析配置文件中时,才会出现此错误。