2011-02-15 14 views
9

Hola chicos, estamos desarrollando un sistema que proporcionará a los usuarios acceso a Google Analytics. Intento implementarlo de forma tal que los usuarios no necesiten ingresar sus credenciales de inicio de sesión de Google en nuestro sitio, por lo que intentarán que funcione usando su nombre de usuario.¿Cómo obtener datos de Google Analytics usando OAuth?

Tengo una solución que obtiene análisis mediante el correo electrónico y la contraseña del usuario. Estoy buscando una solución que no requiera el correo electrónico y la contraseña del usuario, pero no puedo encontrar nada.

¿Cómo se puede hacer? cualquier consejo o enlace será apreciado.

gracias

+0

Los análisis también se pueden compartir con usuarios específicos (sobre la base de correo electrónico) – Adeel

Respuesta

11

Bien, muchachos, después de unos días de lucha finalmente me di cuenta de esto. No hay documentación en Internet y las personas que lo hicieron antes no querían compartir su éxito por algún motivo. Encontré este discussion que me ayudó.

para hacer que funcione, necesitará DotNetOpenAuth de http://www.dotnetopenauth.net/ y gdata de http://code.google.com/p/google-gdata/

por lo

using DotNetOpenAuth.ApplicationBlock; 
using DotNetOpenAuth.OAuth; 

using Google.GData.Client; 
using Google.GData.Analytics; 

En DotNetOpenAuth existe proyecto de ejemplo denominado OAuthConsumer el que necesita. Cambiar a requiest autorización para Analítica:

GoogleConsumer.RequestAuthorization(google, GoogleConsumer.Applications.Analytics); 

Esto le dará secreta de emergencia y de emergencia. Se pueden usar en este aspecto:

 GOAuthRequestFactory requestFactory = new GOAuthRequestFactory("cp", TokenManager.ConsumerKey); //ConsumerKey actually is the name of web application 
     requestFactory.ConsumerKey = TokenManager.ConsumerKey; 
     requestFactory.ConsumerSecret = TokenManager.ConsumerSecret; 
     requestFactory.Token = AccessToken; 
     requestFactory.TokenSecret = TokenManager.GetTokenSecret(AccessToken); 
     requestFactory.UseSSL = true; 
     AnalyticsService service = new AnalyticsService(requestFactory.ApplicationName); // acually the same as ConsumerKey 
     service.RequestFactory = requestFactory; 

     const string dataFeedUrl = "https://www.google.com/analytics/feeds/data"; 

     DataQuery query1 = new DataQuery(dataFeedUrl); 

Este servicio se puede utilizar como here o here

Y lo último, que no estará disponible para tratar de probarlo en localhost por lo que tendrá una dominio que DEBE estar registrado con Google here para obtener clave de consumidor y secreto

+0

He descargado todas estas bibliotecas y no hay ningún miembro como service.RequestFactory = requestFactory ;. Además, ¿sabe por casualidad cómo utilizar la clase Analytics en el espacio de nombres Google.Apis.Analytics.v3 –

1

Hay una .NET/C# class para la autenticación de datos de Google que se puede utilizar para acceder a la API de Google Analytics de exportación de datos (ya que la API es parte del estándar de datos de Google, aunque puede que tenga que hacer ajustes específicos de Google Analytics.) *

La autenticación se gestiona mejor mediante la creación de un Google Registered Application, ya que esto le permite realizar la autenticación sin advertencias de seguridad (y, para el caso, fallas de seguridad).

Existen tres formas de autenticación compatible; los 'seguros'/sin contraseña son OAuth y AuthSub (que es la versión de propiedad exclusiva de Google de OAuth); Google llama a la versión de nombre de usuario y contraseña codificada como 'ClientLogin', y no se considera segura o ideal para aplicaciones de múltiples usuarios.

* (Ya que la pregunta etiquetado )

Edición: Más detalles sobre el uso de AuthSub o OAuth con la biblioteca .NET:

AuthSubSupport: http://code.google.com/p/google-gdata/wiki/AuthSubSupport

Ejemplos de código sobre cómo utilizar las bibliotecas para autenticación OAuth: http://code.google.com/apis/gdata/docs/auth/oauth.html#2LeggedOAuth (haga clic en la pestaña .NET).

+1

enlace a http://code.google.com/apis/gdata/client-cs.html no proporciona ningún examen razonable, se muestra uno utilizando ClientLogin usando correo electrónico y contraseña que es inaceptable. La documentación de Google no ayuda en absoluto. No tengo idea de cómo generar todas esas grandes solicitudes engorrosas de forma manual y luego analizar las respuestas. Esta tarea me parece sin esperanza para alguien que no tiene muchos años de experiencia. – Burjua

+0

@Burjua Vea mis 2 ediciones. Ellos deberían ayudar. Sé por lo que estás pasando. Tuve que hacer esto para PHP, y no es sencillo trabajar. Pero las guías son útiles. – Yahel

-1

No creo que deba meterse con OAuth.

La API de Google Analytics le deja pasar credenciales. Solo comience con este ejemplo de feed de datos.

http://code.google.com/p/google-gdata/source/browse/trunk/clients/cs/samples/Analytics_DataFeed_Sample/dataFeed.cs

// Configure GA API and do client login Authorization. 
AnalyticsService asv = new AnalyticsService("gaExportAPI_acctSample_v2.0"); 
asv.setUserCredentials(clientUser, clientPass); 

Descarga la biblioteca cliente aquí

http://code.google.com/apis/analytics/docs/gdata/gdataLibraries.html

Para tener una idea de las consultas de datos, jugar con esto y luego copiar los valores en el ejemplo anterior

http://code.google.com/apis/analytics/docs/gdata/gdataExplorer.html 
+0

Esto es más adecuado para el desarrollo solamente. Si implementa esto en producción, además de los riesgos de seguridad, obtiene un límite de 200 solicitudes por día – Eduardo

Cuestiones relacionadas