google-analytics-api
Authentifizierung
Suche…
Syntax
- GET https://accounts.google.com/o/oauth2/auth?client_id= {clientid} & redirect_uri = urn: ietf: wg: oauth: 2.0: oob & scope = {Bereiche} & response_type = code
- POST https://accounts.google.com/o/oauth2/token code = {Code von oben aufrufen} & client_id = {clientId} & client_secret = {ClientSecret} & redirect_uri = urn:
- POST https://accounts.google.com/o/oauth2/token client_id = {ClientId} & client_secret = {ClientSecret} & refresh_token = {Von oben aufgerufener Aufruf} & grant_type = refresh_token
Parameter
Parameter | Beschreibung |
---|---|
Kunden ID | Über die Google Developer- Konsole wird Ihr Projekt oder Ihre Anwendung identifiziert |
Geheimnis | Über die Google Developer- Konsole wird Ihr Projekt oder Ihre Anwendung identifiziert |
redirect_uri | Von Google Developer- Speicherort, an den die Authentifizierung zurückgegeben werden soll. Bei urn:ietf:wg:oauth:2.0:oob Anwendungen kann mit urn:ietf:wg:oauth:2.0:oob localhost bezeichnet werden |
Bemerkungen
Um auf ein Google-API zuzugreifen, müssen Sie sich als Entwickler und Ihr Projekt identifizieren. Dazu erstellen wir ein neues Projekt in der Google Developers Console .
Wenn Sie Ihr Projekt erstellen, müssen Sie die APIs, auf die Sie zugreifen möchten, aktivieren, wenn Sie auf die Google Analytics-APIs zugreifen möchten.
- Berichts-API : Zugriff auf die Google Analytics-Berichts-API v4.
- Analytics-API : Zugriff auf alles andere.
Nun müssen Sie entscheiden, wie Sie auf die Daten zugreifen möchten.
Bei Google Data gibt es zwei Arten von Daten öffentlich und privat.
- Öffentliche Daten gehören keinem Benutzer. Die Metadaten-API ist eine öffentliche API, für die Sie nicht angemeldet sein müssen, um auf diese Daten zuzugreifen.
- Die Berichterstellungs-API enthält Google Analytics-Daten eines Nutzers, die Sie nicht einsehen können, es sei denn, der Nutzer hat Ihnen die Erlaubnis erteilt, darauf zuzugreifen.
Wenn Sie nur auf öffentliche Daten zugreifen, müssen Sie lediglich einen öffentlichen API-Schlüssel erstellen, und Sie können auf die betreffende API zugreifen. Wenn Sie auf private Benutzerdaten zugreifen möchten, müssen Sie entweder Oauth2-Anmeldeinformationen oder Dienstkonto-Anmeldeinformationen erstellen.
Autorisierung Oauth2
Um auf private Benutzerdaten zugreifen zu können, benötigen wir die Erlaubnis des Eigentümers der Daten, um darauf zuzugreifen. Oauth2 erlaubt uns, diesen Zugriff von einem Benutzer anzufordern.
Sie haben Oauth2 wahrscheinlich schon vorher gesehen.
Die Anwendung "Google Analytics Windows" fordert Zugriff auf, um die Benutzer "Google Analytics-Daten" anzuzeigen.
- Google Analytics-Fenster ist der Name des Projekts, das in der Google Developer Console erstellt wurde.
- Bei Google Analytics-Daten handelt es sich um den Umfang der Berechtigungen, nach denen wir gefragt haben.
Geltungsbereich Wir müssen dem Benutzer mitteilen, was wir tun möchten. Die Google Analytics-API verfügt über zwei Gültigkeitsbereiche, die Sie verwenden können.
Am besten fordern Sie nur die gewünschten Bereiche an. Wenn Sie nur die Daten eines Benutzers lesen, müssen Sie nur den Readonly-Bereich anfordern.
Berechtigungsservice-Konten
Dienstkonten unterscheiden sich dadurch, dass sie vorab genehmigt wurden. Wenn Sie Dienstkonto-Anmeldeinformationen erstellen, können Sie als Entwickler die E-Mail des Dienstkontos als Benutzer in Ihrem Google Analytics-Konto hinzufügen. Auf Kontoebene gewährt dies dem Dienstkonto Zugriff auf die Daten. Sie müssen das Authentifizierungsfenster nicht öffnen und den Zugriff anfordern. Das Servicekonto hat Zugriff auf die Daten, solange es sich um einen Nutzer des Google Analytics-Kontos handelt.
Fazit
Für den Zugriff auf die meisten Daten, die von der Google Analytics-API angezeigt werden, ist eine Authentifizierung erforderlich.
Sie können ab Mai 2015 nicht mehr mit dem Client-Login / -Login und -Passwort auf ein Google-API zugreifen. Sie müssen die Open-Authentifizierung verwenden.
**
Oauth2 C #
Beispiel verwendet die Dotnet-Clientbibliothek von Google APIs .
PM> Install-Package 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);
}
}
Dienstkonto-Authentifizierung Vb.net
Beispiel verwendet das Installationspaket 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