Suche…


Syntax

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.

Geben Sie hier die Bildbeschreibung ein

Die Anwendung "Google Analytics Windows" fordert Zugriff auf, um die Benutzer "Google Analytics-Daten" anzuzeigen.

  1. Google Analytics-Fenster ist der Name des Projekts, das in der Google Developer Console erstellt wurde.
  2. 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.

  1. https://www.googleapis.com/auth/analytics.readonly
  2. https://www.googleapis.com/auth/analytics

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 = "[email protected]"   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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow