Sök…


Syntax

parametrar

Parameter Beskrivning
Klient ID Från Google Developer Console identifierar ditt projekt eller din applikation
hemlighet Från Google Developer Console identifierar ditt projekt eller din applikation
redirect_uri Från Google Developer- plats där autentiseringen ska returneras till. När det gäller infödda applikationer kan urn:ietf:wg:oauth:2.0:oob användas för att beteckna localhost

Anmärkningar

För att få åtkomst till alla Google API måste du identifiera dig själv som utvecklare och identifiera ditt projekt. Det gör vi genom att skapa ett nytt projekt på Google Developers-konsolen .

När du skapar ditt projekt måste du aktivera de API: er du tänker komma åt om du vill komma åt Google Analytics API: er.

  • Rapporterings API : Åtkomst till Google Analytics Reporting API v4.
  • Analytics API : åtkomst till allt annat.

Nu måste du bestämma hur du vill komma åt data.

Med Google Data finns det två typer av data offentliga och privata.

  • offentliga uppgifter ägs inte av en användare. Metadata-API: et är ett offentligt API som du inte behöver vara inloggad för att få åtkomst till dessa data.
  • Rapporterings API innehåller användare från Google Analytics, det är privat att du inte kan titta på dem såvida inte användaren har gett dig tillåtelse att få åtkomst till den.

Om du bara har åtkomst till offentliga uppgifter är allt du behöver göra att skapa en offentlig API-nyckel och du kommer att kunna komma åt API i fråga. Om du kommer att få åtkomst till privata användardata måste du skapa antingen Oauth2-referenser eller servicekontouppgifter.

Auktorisation Oauth2

För att få åtkomst till privata användardata måste vi ha tillåtelse från ägaren till informationen. Oauth2 tillåter oss att begära åtkomst från en användare.

Du har förmodligen sett förut Oauth2 tidigare.

ange bildbeskrivning här

Applikationen "Google Analytics Windows" begär åtkomst för att se användarna "Google Analytics Data"

  1. Google Analytics-fönster är namnet på projektet som skapades på Google Developer Console.
  2. Google Analytics-data är omfattningen av behörigheter som vi bad om.

Omfattning Vi måste berätta för användaren vad vi tänker göra Google Analytics API har två omfång som du kan använda.

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

Det är bäst att bara begära de områden du behöver. Om du bara läser en användardata behöver du bara begära det readonly räckvidden.

Autoriseringstjänstkonton

Servicekonton skiljer sig åt genom att de är förhandsgodkända. Om du skapar servicekontouppgifter kan du som utvecklare ta servicekontot via e-post och lägga till det som en användare på ditt Google Analytics-konto På kontonivå ger detta servicekontot åtkomst till data. Du behöver inte dyka upp autentiseringsfönstret och begära åtkomst. Servicekontot har åtkomst till informationen så länge det är en användare på Google Analytics-kontot.

Slutsats

Autentisering krävs för att få åtkomst till de flesta data som exponeras av Google Analytics API.

Du kan inte använda klientinloggning / inloggning och lösenord för att få åtkomst till något Google API från maj 2015. Du måste använda öppen autentisering.

**

Oauth2 C #

Exempel använder Google API: s Dotnet-klientbibliotek .

PM> Installera-paket 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);
        }
    }

Servicekonto Autentisering Vb.net

Exempel använder Install-Package 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow