2012-01-31 4 views
2

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

ответ