2011-09-21 11 views

Odpowiedz

11

Jeśli tworzysz aplikację konta usługi, aby uzyskać dostęp do Google Analytics.

  1. Zarejestruj go w Google przez https://code.google.com/apis/console. Na karcie Dostęp do interfejsu API kliknij opcję Utwórz identyfikator klienta, wybierz opcję Konto usługi. Zapisz plik klucza, który Google wygeneruje i zapamięta hasło dla tego klucza.
  2. Oto kod, aby zacząć

    require 'rubygems' 
    require 'google/api_client' 
    
    api_client = Google::APIClient.new 
    path_to_key_file ="/path/to/key/file-privatekey.p12" 
    passphrase = "google_generated_password" 
    key = Google::APIClient::PKCS12.load_key(path_to_key_file, passphrase) 
    

Gdy przycisk jest dostępny, zainicjować asserter z identyfikatorem klienta (e-mail w konsoli API) i autoryzacji zakresów.

asserter = Google::APIClient::JWTAsserter.new(
    '[email protected]com', 
    'https://www.googleapis.com/auth/analytics.readonly', 
    key) 

# To request an access token, call authorize: 
api_client.authorization = asserter.authorize() 
puts api_client.authorization.access_token 

http://code.google.com/p/google-api-ruby-client/wiki/ServiceAccounts

+0

uzyskać to: 'Autoryzacja nie powiodła się. Komunikat serwera: {"błąd": "invalid_grant"} '. Słyszałem, jak ludzie mówią, aby zmienić tryb granulacji na offline, ale czy jest jakiś sposób na zrobienie tego z rubinowego klejnotu? – NullVoxPopuli

0

Odpowiedziałem coś podobnego w kilku innych stanowisk Okazało się, że byli jak ten ... tak okrywać jego istotne, rubin, używając google-API klienta (dla każdego z google apis), jest kilka tajników z uwierzytelnianiem przy użyciu klucza API w przeciwieństwie do OAuth ...

Zarysowałem ten proces (używając strony serwera kluczy APi) pod numerem the code abode.

Musisz jawnie ustawić parametr autoryzacji do zera podczas konstruowania klienta, w przeciwnym razie gem spróbuje użyć OAuth do uwierzytelnienia, więc jeśli dzwonisz z serwera tylko za pomocą klucza API, zawsze otrzymasz 401 nieautoryzowanego.

the code abode - google-api-client for ruby

Powiązane problemy