Buscar..


Sintaxis

Parámetros

Parámetro Descripción
Identificación del cliente Desde la consola de desarrolladores de Google identifica tu proyecto o aplicación.
secreto Desde la consola de desarrolladores de Google identifica tu proyecto o aplicación.
redirect_uri Desde la ubicación de Google Developer donde se debe devolver la autenticación. En el caso de aplicaciones nativas, urn:ietf:wg:oauth:2.0:oob se puede utilizar para denotar localhost

Observaciones

Para acceder a cualquier API de Google, debe identificarse como desarrollador e identificar su proyecto. Lo hacemos creando un nuevo proyecto en la consola de Google Developers .

Cuando cree su proyecto, si desea acceder a las API de Google Analytics, debe habilitar las API a las que desea acceder.

  • API de informes : acceso a la API de informes de Google Analytics v4.
  • API de análisis : acceso a todo lo demás.

Ahora debe decidir cómo desea acceder a los datos.

Con Google Data hay dos tipos de datos públicos y privados.

  • Los datos públicos no son propiedad de un usuario. La API de metadatos es una API pública en la que no es necesario iniciar sesión para acceder a esos datos.
  • La API de informes contiene una información de Google Analytics de los usuarios que es privada, no puede verla a menos que el usuario le haya dado permiso para acceder a ella.

Si solo está accediendo a datos públicos, todo lo que necesita hacer es crear una clave de API pública y podrá acceder a la API en cuestión. Si va a acceder a los datos privados del usuario, deberá crear las credenciales de Oauth2 o las credenciales de la cuenta de servicio.

Autorización Oauth2

Para acceder a los datos privados del usuario, debemos tener el permiso del propietario de los datos para acceder a ellos. Oauth2 nos permite solicitar ese acceso a un usuario.

Probablemente has visto antes a Oauth2 antes.

introduzca la descripción de la imagen aquí

La aplicación "Google Analytics Windows" solicita acceso para ver los usuarios de "Google Analytics Data"

  1. Las ventanas de Google Analytics son el nombre del proyecto que se creó en la consola de desarrolladores de Google.
  2. Los datos de Google Analytics son el alcance de los permisos que solicitamos.

Ámbito Necesitamos decirle al usuario lo que pretendemos hacer. La API de Google Analytics tiene dos ámbitos que puede usar.

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

Es mejor solicitar solo los alcances que necesita. Si solo va a leer los datos de un usuario, solo necesita solicitar el alcance de solo lectura.

Cuentas de servicio de autorizaciones.

Las cuentas de servicio son diferentes en que son aprobadas previamente. Si crea credenciales de cuenta de servicio, usted, como desarrollador, puede tomar el correo electrónico de la cuenta de servicio y agregarlo como usuario en su cuenta de Google Analytics. En el nivel de cuenta, esto le otorgará acceso a los datos a la cuenta de servicio. No necesitará abrir la ventana de autenticación y solicitar acceso. La cuenta de servicio tendrá acceso a los datos mientras sea un usuario en la cuenta de Google Analytics.

Conclusión

Se necesita autenticación para acceder a la mayoría de los datos expuestos por la API de Google Analytics.

No puede usar el inicio de sesión / inicio de sesión del cliente y la contraseña para acceder a cualquier API de Google a partir de mayo de 2015. Debe usar la autenticación abierta.

**

Oauth2 C #

Ejemplo utiliza la biblioteca del cliente Dotnet de las API de 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);
        }
    }

Autenticación de cuentas de servicio Vb.net

Ejemplos de uso de 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
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow