google-analytics-api
Poświadczenie
Szukaj…
Składnia
- GET https://accounts.google.com/o/oauth2/auth?client_id= {clientid} & redirect_uri = urn: ietf: wg: oauth: 2.0: oob & scope = {Scopes} & response_type = kod
- POST https://accounts.google.com/o/oauth2/token code = {Kod z powyższego połączenia} & client_id = {ClientId} & client_secret = {ClientSecret} & redirect_uri = urn: ietf: wg: oauth: 2.0: oob & grant_type = kod_autoryzacji
- POST https://accounts.google.com/o/oauth2/token client_id = {ClientId} & client_secret = {ClientSecret} & refresh_token = {Z powyższego połączenia} & grant_type = refresh_token
Parametry
Parametr | Opis |
---|---|
Identyfikator klienta | Z konsoli programisty Google identyfikuje Twój projekt lub aplikację |
sekret | Z konsoli programisty Google identyfikuje Twój projekt lub aplikację |
redirect_uri | Z lokalizacji Google Developer, do której należy zwrócić uwierzytelnienie. W przypadku aplikacji natywnych urn:ietf:wg:oauth:2.0:oob może być używany do oznaczenia localhost |
Uwagi
Aby uzyskać dostęp do dowolnego interfejsu API Google, musisz zidentyfikować się jako programista i zidentyfikować swój projekt. Robimy to, tworząc nowy projekt w konsoli Google Developers .
Podczas tworzenia projektu, jeśli chcesz uzyskać dostęp do interfejsów API Google Analytics, musisz włączyć interfejsy API, do których zamierzasz uzyskać dostęp.
- Raportowanie API : dostęp do Google Analytics Reporting API v4.
- Analytics API : dostęp do wszystkiego innego.
Teraz musisz zdecydować, w jaki sposób chcesz uzyskać dostęp do danych.
W Google Data istnieją dwa rodzaje danych: publiczny i prywatny.
- dane publiczne nie są własnością użytkownika. Metadane API to publiczny interfejs API, do którego dostępu nie trzeba się logować.
- Interfejs API do raportowania zawiera dane Google Analytics użytkowników, które są prywatne, nie można na nie patrzeć, chyba że użytkownik wyraził na to zgodę.
Jeśli uzyskujesz dostęp tylko do danych publicznych, wszystko, co musisz zrobić, to utworzyć publiczny klucz API i będziesz mieć dostęp do danego interfejsu API. Jeśli zamierzasz uzyskać dostęp do prywatnych danych użytkownika, musisz utworzyć poświadczenia Oauth2 lub poświadczenia konta usługi.
Autoryzacja Oauth2
Aby uzyskać dostęp do prywatnych danych użytkownika, musimy mieć zgodę właściciela danych na dostęp do nich. Oauth2 pozwala nam prosić o dostęp od użytkownika.
Prawdopodobnie widziałeś już wcześniej Oauth2.
Aplikacja „Google Analytics Windows” prosi o dostęp do przeglądania użytkowników „Dane Google Analytics”
- Okna Google Analytics to nazwa projektu utworzonego w konsoli programisty Google.
- Dane Google Analytics to zakres uprawnień, o które poprosiliśmy.
Zakres Musimy powiedzieć użytkownikowi, co zamierzamy zrobić. Interfejs API Google Analytics ma dwa zakresy, których możesz użyć.
Najlepiej jest poprosić tylko o potrzebne zakresy. Jeśli będziesz czytał tylko dane użytkowników, musisz jedynie poprosić o zakres tylko do odczytu.
Konta usługi autoryzacji
Konta usług różnią się tym, że są wstępnie zatwierdzone. Jeśli utworzysz poświadczenia konta usługi, jako programista możesz pobrać adres e-mail konta usługi i dodać go jako użytkownika na koncie Google Analytics Na poziomie konta zapewni to dostęp do danych konta usługi. Nie musisz otwierać okna uwierzytelniania i żądać dostępu. Konto usługi będzie miało dostęp do danych tak długo, jak długo będzie użytkownikiem konta Google Analytics.
Wniosek
Uwierzytelnienie jest potrzebne, aby uzyskać dostęp do większości danych ujawnionych przez interfejs API Google Analytics.
Od maja 2015 r. Nie można używać loginu / loginu i hasła klienta, aby uzyskać dostęp do dowolnego interfejsu API Google. Musisz użyć uwierzytelniania otwartego.
**
Oauth2 C #
Przykład korzysta z biblioteki klienta Dotnet API Google .
PM> Zainstaluj pakiet Google.Apis.AnalyticsReporting.v4
/// <summary>
/// This method requests Authentcation from a user using Oauth2.
/// Credentials are stored in System.Environment.SpecialFolder.Personal
/// Documentation https://developers.google.com/accounts/docs/OAuth2
/// </summary>
/// <param name="clientSecretJson">Path to the client secret json file from Google Developers console.</param>
/// <param name="userName">Identifying string for the user who is being authentcated.</param>
/// <returns>DriveService used to make requests against the Drive API</returns>
public static AnalyticsReportingService AuthenticateOauth(string clientSecretJson, string userName)
{
try
{
if (string.IsNullOrEmpty(userName))
throw new Exception("userName is required.");
if (string.IsNullOrEmpty(clientSecretJson))
throw new Exception("clientSecretJson is required.");
if (!File.Exists(clientSecretJson))
throw new Exception("clientSecretJson file does not exist.");
// These are the scopes of permissions you need.
string[] scopes = new string[] { AnalyticsReportingService.Scope.AnalyticsReadonly }; // View your Google Analytics Data
UserCredential credential;
using (var stream = new FileStream(clientSecretJson, FileMode.Open, FileAccess.Read))
{
string credPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
credPath = Path.Combine(credPath, ".credentials/", System.Reflection.Assembly.GetExecutingAssembly().GetName().Name);
// Requesting Authentication or loading previously stored authentication for userName
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.Load(stream).Secrets,
scopes,
userName,
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
}
// Create Drive API service.
return new AnalyticsReportingService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = string.Format("{0} Authentication", System.Reflection.Assembly.GetExecutingAssembly().GetName().Name),
});
}
catch (Exception ex)
{
Console.WriteLine("Create Oauth2 DriveService failed" + ex.Message);
throw new Exception("CreateOauth2DriveFailed", ex);
}
}
Uwierzytelnianie konta usługi Vb.net
Przykład wykorzystuje pakiet instalacyjny Google.Apis.AnalyticsReporting.v4
Public Shared Function getServiceInitializer() As BaseClientService
Dim serviceAccountCredentialFilePath = "Path to Json service account key file" REM from Google Developers console
Dim myKeyEMail = "XXX@developer.gserviceaccount.com" REM from Google Developers console
Dim scope = Google.Apis.AnalyticsReporting.v4.AnalyticsReportingService.Scope.AnalyticsReadonly
Try
Dim credential
Using stream As New FileStream(serviceAccountCredentialFilePath, FileMode.Open, FileAccess.Read)
credential = GoogleCredential.FromStream(stream).CreateScoped(scope)
End Using
Dim Initializer As New BaseClientService.Initializer()
Initializer.HttpClientInitializer = credential
Initializer.ApplicationName = "SRJCGMail"
Dim service As New AnalyticsReportingService(Initializer)
Return service
Catch ex As Exception
Console.WriteLine(ex.Message)
Return Nothing
End Try
End Function