Я пытаюсь использовать последнюю версию API отчетов с использованием OAuth 2. Не похоже, что есть много людей, использующих эту версию, так что это было действительно трудно найти примеры.Не удается запросить API отчетов Google Analytics с помощью OAuth 2
У меня есть токен обновления, который я использую для создания токена доступа.
private AnalyticsService getAnalyticsService()
{
AuthorizationServerDescription description = new AuthorizationServerDescription();
description.TokenEndpoint = new Uri(login.TokenEndpoint);
description.AuthorizationEndpoint = new Uri(login.AuthorizationEndpoint);
WebServerClient client = new WebServerClient(description, login.ClientId, login.ClientSecret);
OAuth2Authenticator<WebServerClient> authenticator = new OAuth2Authenticator<WebServerClient>(client, authenticate);
AnalyticsService service = new AnalyticsService(authenticator);
return service;
}
private IAuthorizationState authenticate(WebServerClient client)
{
string[] scopes = new string[] { login.ScopeUrl }; // not sure if this is necessary
IAuthorizationState state = new AuthorizationState(scopes) { RefreshToken = login.RefreshToken };
client.RefreshToken(state);
return state;
}
Это, кажется, работает просто отлично:
{
"access_token" : "ya29.AHES6ZQy67SSLHWJWGWcLbLn69yKfq59y6dTHDf4ZoH9vHY",
"token_type" : "Bearer",
"expires_in" : 3600
}
Однако, когда я делаю запрос, я получаю сообщение об ошибке. Например, здесь является запрос, который приводит к ошибке:
AnalyticsService service = getAnalyticsService();
ManagementResource.ProfilesResource.ListRequest request = service.Management.Profiles.List("~all", "~all");
return request.Fetch();
Это ошибка, я получаю:
{"error":{"errors":[{"domain":"global","reason":"authError","message":"Invalid
Credentials","locationType":"header","location":"Authorization"}],"code":401,"message":"Invalid
Credentials"}}
Я пробовал другие запросы, обеспечивая действительные идентификаторы профиля. Тем не менее, я всегда получаю ошибку 401, заявив, что я не авторизовался. У меня есть проблемы с поиском примеров, где люди используют этот код. Это может быть что-то простое, как плохой URL или что-то в этом роде. К сожалению, у меня нет способ рассказать. Кажется странным, что я могу получить токен доступа, но я не могу выполнить какие-либо запросы, но я .