Google Analytics-API: "Der Nutzer verfügt nicht über ausreichende Berechtigungen für dieses Konto."

Schreibe ich ein Ruby-app greift auf die Google Analytics API zu ziehen, um einige experiment Informationen.

Die app verbindet und authentifiziert sich mit Hilfe einer Google-Service-Konto über die folgenden Funktion:

def connect
  ...
  @@client = Google::APIClient.new(:application_name => 'My Service App', 
                                    :application_version => '1.0.0')
  key_file = Rails.root.join('config', 'privatekey.p12').to_s
  key_secret = 'somesecret'
  key = Google::APIClient::PKCS12.load_key(key_file, key_secret)
  asserter = Google::APIClient::JWTAsserter.new(
    SECRETS[:google_service_account_email],
    ['https://www.googleapis.com/auth/yt-analytics.readonly',
     'https://www.googleapis.com/auth/analytics.readonly'
    ],
    key
  )
  @@client.authorization = asserter.authorize()
  ...
end

..., der Sie authentifiziert und entdeckt beide APIs, ohne Frage.

Mithilfe des Kunden gegen die YouTube-Analytics-API funktioniert ohne Problem. Mit exakt das gleiche Konto für den Zugriff auf die Analytics-API-über...

response = @@client.execute({
  # 'analytics is the API object retrieved via discover_api()
  :api_method => analytics.management.experiments.list, 
  :parameters => {
    'accountId' => 'AAAAAAAA',
    'profileId' => 'PPPPPPPP',
    'webPropertyId' => 'UA-WWWWWWWW-#'
  }
})

Ergebnisse in eine 403-error-response:

{"domain":"global","reason":"insufficientPermissions","message":"User does not have sufficient permissions for this account."}

In Bezug auf die Genehmigung, ich habe doppelt überprüft das Konto [email protected]:

  • Verfügt über volle Berechtigungen für den Google Analytics-web-interface. Ich mich eingeloggt habe mit dem [email protected] Konto und war in der Lage, die gleichen Experimente habe ich versucht, die Liste.
  • Hat der Analytics-API. Innerhalb der API Konsole, bestätigte ich in der Services-Sektion, dass die Analytics-API item-Schalter AUF on. (Genau wie YouTube Analytics ist.)
  • Ich bin mit den entsprechenden AccountID, ProfileID, und WebPropertyID Werte. Direkt kopiert aus der Google Analytics-web-interface.

Gegeben, dass das Dienstkonto Zugriff auf die mindestens eine API (YouTube Analytics) und der damit verbundenen Konto - ([email protected]) Zugriff auf die Analytics-web-interface, es scheint etwas falsch mit dem service-Konto, das Zugriff auf die Analytics-API im besonderen.

Irgendwelche Ideen?

Ähnliche Themen:

InformationsquelleAutor der Frage David Elner | 2014-01-06

Schreibe einen Kommentar