Ricerca…


Sintassi

Parametri

Parametro Descrizione
Identificativo cliente Dalla console per sviluppatori di Google identifica il tuo progetto o la tua applicazione
segreto Dalla console per sviluppatori di Google identifica il tuo progetto o la tua applicazione
redirect_uri Dalla posizione dello sviluppatore di Google a cui deve essere restituita l'autenticazione. Nel caso di Native applications urn:ietf:wg:oauth:2.0:oob può essere usato per denotare localhost

Osservazioni

Per accedere a qualsiasi API di Google devi identificarti come sviluppatore e identificare il tuo progetto. Lo facciamo creando un nuovo progetto sulla console di Google Developers .

Quando crei il tuo progetto, se vuoi accedere alle API di Google Analytics devi abilitare le API a cui intendi accedere.

  • API di reporting : accesso all'API di reporting di Google Analytics v4.
  • API di Analytics : accesso a tutto il resto.

Ora devi decidere come vorresti accedere ai dati.

Con Google Data esistono due tipi di dati pubblici e privati.

  • i dati pubblici non sono di proprietà di un utente. L'API dei metadati è un'API pubblica che non è necessario accedere per accedere a tali dati.
  • L'API Reporting contiene dati di Google Analytics di utenti privati, non puoi guardarli a meno che l'utente non ti abbia autorizzato ad accedervi.

Se stai solo accedendo ai dati pubblici, tutto ciò che devi fare è creare una chiave API pubblica e sarai in grado di accedere all'API in questione. Se si accederà a dati utente privati, sarà necessario creare credenziali Oauth2 o credenziali dell'account di servizio.

Autorizzazione Oauth2

Per accedere ai dati degli utenti privati, è necessario disporre dell'autorizzazione del proprietario dei dati per accedervi. Oauth2 ci consente di richiedere l'accesso da un utente.

Probabilmente hai già visto prima Oauth2.

inserisci la descrizione dell'immagine qui

L'applicazione "Google Analytics Windows" richiede l'accesso per visualizzare gli utenti "Dati di Google Analytics"

  1. Google Analytics windows è il nome del progetto che è stato creato sulla Console per gli sviluppatori di Google.
  2. Google Analytics Data è lo scopo delle autorizzazioni che abbiamo richiesto.

Ambito È necessario comunicare all'utente che cosa intendiamo fare l'API di analisi di Google ha due ambiti che è possibile utilizzare.

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

È meglio richiedere solo gli ambiti di cui hai bisogno. Se si leggeranno solo i dati degli utenti, sarà sufficiente richiedere l'ambito readonly.

Account del servizio di autorizzazione

Gli account di servizio sono diversi in quanto sono pre-approvati. Se crei le credenziali dell'account di servizio, lo sviluppatore può prendere l'email dell'account di servizio e aggiungerla come utente sul tuo account Google Analytics A livello di account, questo concederà all'account di servizio l'accesso ai dati. Non è necessario aprire la finestra di autenticazione e richiedere l'accesso. L'account di servizio avrà accesso ai dati per tutto il tempo in cui è un utente nell'account Google Analytics.

Conclusione

L'autenticazione è necessaria per accedere alla maggior parte dei dati esposti dall'API di Google Analytics.

Non puoi utilizzare login / accesso e password del client per accedere a qualsiasi API di Google a partire da maggio 2015. È necessario utilizzare l'autenticazione aperta.

**

Oauth2 C #

Esempio utilizza la libreria client Dotnet delle API di Google .

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);
        }
    }

Servizio Account Authentcation Vb.net

Esempio utilizza il pacchetto di installazione 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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow