Не удается запросить API отчетов Google Analytics с помощью OAuth 2 - PullRequest
2 голосов
/ 31 января 2012

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

1 Ответ

3 голосов
/ 31 января 2012

С OAuth 2 область действия изменилась с:

https://www.google.com/analytics/feeds/

на:

https://www.googleapis.com/auth/analytics.readonly

Вы получаете ошибку аутентификациипотому что вы пытались получить доступ без нужной области действия.

Быстрое и простое исправление.

...