google-analytics-api
Autenticazione
Ricerca…
Sintassi
- OTTIENI https://accounts.google.com/o/oauth2/auth?client_id= {clientid} e redirect_uri = urn: ietf: wg: oauth: 2.0: oob & scope = {Scopes} & response_type = codice
- POST https://accounts.google.com/o/oauth2/token code = {Codice da sopra chiamata} & client_id = {ClientId} & client_secret = {ClientSecret} & redirect_uri = urn: ietf: wg: oauth: 2.0: oob & grant_type = codice_autorizzazione
- POST https://accounts.google.com/o/oauth2/token client_id = {ClientId} e client_secret = {ClientSecret} e refresh_token = {Dalla chiamata precedente} & grant_type = refresh_token
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.
L'applicazione "Google Analytics Windows" richiede l'accesso per visualizzare gli utenti "Dati di Google Analytics"
- Google Analytics windows è il nome del progetto che è stato creato sulla Console per gli sviluppatori di Google.
- 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.
È 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 = "XXX@developer.gserviceaccount.com" 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