Я пытаюсь использовать последнюю версию API отчетов, используя 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 или что-то в этом роде.К сожалению, я не могу рассказать.Кажется странным, что я могу получить токен доступа, но я не могу выполнять какие-либо запросы.