google-analytics-api
authenticatie
Zoeken…
Syntaxis
- ONTVANG https://accounts.google.com/o/oauth2/auth?client_id= {clientid} & redirect_uri = urn: ietf: wg: oauth: 2.0: oob & scope = {Scopes} & response_type = code
- POST https://accounts.google.com/o/oauth2/token code = {Code van bovenstaand gesprek} & client_id = {ClientId} & client_secret = {ClientSecret} & redirect_uri = urn: ietf: wg: oauth: 2.0: oob & grant_type = authorisatiecode
- POST https://accounts.google.com/o/oauth2/token client_id = {ClientId} & client_secret = {ClientSecret} & refresh_token = {From above call} & grant_type = refresh_token
parameters
Parameter | Beschrijving |
---|---|
Klant identificatie | Van Google Developer console identificeert uw project of applicatie |
geheim | Van Google Developer console identificeert uw project of applicatie |
redirect_uri | Van Google Developer- locatie waar de authenticatie moet worden geretourneerd. In het geval van native toepassingen urn:ietf:wg:oauth:2.0:oob kan worden gebruikt om localhost aan te duiden |
Opmerkingen
Om toegang te krijgen tot een Google API moet u zich als ontwikkelaar identificeren en uw project identificeren. We doen dat door een nieuw project te maken op de Google Developers-console .
Wanneer u uw project maakt en u toegang wilt krijgen tot de Google Analytics API's, moet u de API's inschakelen waartoe u toegang wilt krijgen.
- Reporting API : toegang tot de Google Analytics Reporting API v4.
- Analytics API : toegang tot al het andere.
Nu moet u beslissen hoe u toegang wilt tot de gegevens.
Met Google Data zijn er twee soorten Public en Private Data.
- openbare gegevens zijn geen eigendom van een gebruiker. De metadata-API is een openbare API waarvoor u niet hoeft te zijn aangemeld om toegang te krijgen tot die gegevens.
- De rapportage-API bevat Google Analytics-gegevens van gebruikers. U kunt er alleen naar kijken als de gebruiker u toestemming heeft gegeven om er toegang toe te krijgen.
Als u alleen toegang hebt tot openbare gegevens, hoeft u alleen maar een openbare API-sleutel te maken en hebt u toegang tot de betreffende API. Als u toegang wilt krijgen tot privégebruikersgegevens, moet u ofwel Oauth2-referenties of serviceaccountreferenties maken.
Autorisatie Oauth2
Om toegang te krijgen tot privé-gebruikersgegevens moeten we toestemming hebben van de eigenaar van de gegevens om er toegang toe te krijgen. Met Oauth2 kunnen we die gebruiker om toegang vragen.
Je hebt waarschijnlijk eerder Oauth2 eerder gezien.
De applicatie "Google Analytics Windows" vraagt toegang om de gebruikers "Google Analytics Data" te bekijken
- Google Analytics-vensters is de naam van het project dat is gemaakt op de Google Developer-console.
- Google Analytics-gegevens is het bereik van de machtigingen waar we om hebben gevraagd.
Scope We moeten de gebruiker vertellen wat we van plan zijn. De Google Analytics API heeft twee scopes die u kunt gebruiken.
Het is het beste om alleen de scopes op te vragen die u nodig hebt. Als u alleen gebruikersgegevens wilt lezen, hoeft u alleen de alleen-lezen scope aan te vragen.
Autorisatieserviceaccounts
Serviceaccounts zijn anders omdat ze vooraf zijn goedgekeurd. Als u serviceaccountreferenties aanmaakt, kunt u als ontwikkelaar het e-mailadres van het serviceaccount nemen en het als een gebruiker toevoegen aan uw Google Analytics-account. Op accountniveau geeft dit het serviceaccount toegang tot de gegevens. U hoeft het verificatievenster niet te openen en toegang te vragen. Het serviceaccount heeft toegang tot de gegevens zolang het een gebruiker is van het Google Analytics-account.
Conclusie
Verificatie is nodig om toegang te krijgen tot de meeste gegevens die worden weergegeven door de Google Analytics API.
U kunt vanaf mei 2015 geen clientaanmelding / -login en -wachtwoord gebruiken om toegang te krijgen tot een Google API. U moet Open authentication gebruiken.
**
Oauth2 C #
Voorbeeld gebruikt de Google API's Dotnet-clientbibliotheek .
PM> Installatiepakket 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);
}
}
Serviceaccount Authenticatie Vb.net
Voorbeeld gebruikt het installatiepakket 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