Recherche…


Syntaxe

Paramètres

Paramètre La description
Identité du client De la console de développement Google identifie votre projet ou votre application
secret De la console de développement Google identifie votre projet ou votre application
redirect_uri De l'emplacement de Google Developer où l'authentification doit être retournée. Dans le cas d'applications natives urn:ietf:wg:oauth:2.0:oob peut être utilisé pour désigner localhost

Remarques

Pour accéder à n'importe quelle API Google, vous devez vous identifier en tant que développeur et identifier votre projet. Nous faisons cela en créant un nouveau projet sur la console Google Developers .

Lorsque vous créez votre projet, si vous souhaitez accéder aux API Google Analytics, vous devez activer les API auxquelles vous souhaitez accéder.

  • Reporting API : accès à l'API Google Analytics Reporting v4.
  • API Analytics : accès à tout le reste.

Vous devez maintenant décider comment vous souhaitez accéder aux données.

Avec Google Data, il existe deux types de données publiques et privées.

  • les données publiques ne sont pas la propriété d'un utilisateur. L'API de métadonnées est une API publique pour laquelle vous n'avez pas besoin d'être connecté pour accéder à ces données.
  • L'API de reporting contient les données Google Analytics des utilisateurs dont vous ne pouvez pas les consulter, à moins que l'utilisateur ne vous ait autorisé à y accéder.

Si vous accédez uniquement aux données publiques, il vous suffit de créer une clé API publique et d'accéder à l'API en question. Si vous souhaitez accéder à des données d'utilisateur privées, vous devrez créer des informations d'identification Oauth2 ou des informations de compte de service.

Autorisation Oauth2

Pour accéder aux données d'utilisateur privées, nous devons avoir la permission du propriétaire des données pour y accéder. Oauth2 nous permet de demander cet accès à un utilisateur.

Vous avez probablement déjà vu avant Oauth2 auparavant.

entrer la description de l'image ici

L'application "Google Analytics Windows" demande l'accès pour afficher les données "Google Analytics" des utilisateurs

  1. Windows Analytics est le nom du projet créé sur la console de développement Google.
  2. Google Analytics Data correspond à la portée des autorisations demandées.

Portée Nous devons indiquer à l'utilisateur ce que nous avons l'intention de faire L'API d'analyse de Google a deux portées que vous pouvez utiliser.

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

Il est préférable de ne demander que les portées dont vous avez besoin. Si vous ne lisez que les données d'un utilisateur, il vous suffit de demander l'étendue readonly.

Comptes de service d'autorisation

Les comptes de service sont différents car ils sont pré-approuvés. Si vous créez des identifiants de compte de service, en tant que développeur, vous pouvez prendre le courrier électronique du compte de service et l'ajouter en tant qu'utilisateur sur votre compte Google Analytics Au niveau du compte, le compte de service aura accès aux données. Vous n'avez pas besoin de faire apparaître la fenêtre d'authentification et de demander l'accès. Le compte de service aura accès aux données aussi longtemps qu'il s'agira d'un utilisateur du compte Google Analytics.

Conclusion

L'authentification est nécessaire pour accéder à la plupart des données exposées par l'API Google Analytics.

Vous ne pouvez pas utiliser le login / login et le mot de passe du client pour accéder à une API Google en mai 2015. Vous devez utiliser l'authentification Open.

**

Oauth2 C #

L'exemple utilise la bibliothèque cliente Google APIs Dotnet .

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

Authentification du compte de service Vb.net

Exemple utilise 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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow