Создайте ваше приложение https://code.google.com/apis/console/
Для вашего приложения включите доступ к Google Analytics и создайте идентификатор клиента OAuth 2.0 для своего веб-сайта.
Просмотр:
https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=YOUR_APP_ID.apps.googleusercontent.com&access_type=offline&scope=https://www.googleapis.com/auth/analytics.readonly&redirect_uri=HTTP://YOUR_CALL_BACK_URL
Изменив YOUR_APP_ID , YOUR_CALL_BACK_URL на соответствующие значения.
Важно включить access_type = offline .
Нажмите Предоставить доступ, он будет перенаправлен на HTTP://YOUR_CALL_BACK_URL?code=THIS_IS_YOUR_CODE
. Скопируйте код в URL.
С помощью кода запросите маркер обновления с помощью приглашения CMD.
curl -d "code=THIS_IS_YOUR_CODE&client_id=YOUR_APP_ID.apps.googleusercontent.com&client_secret=YOUR_APPS_SECRET_CODE&redirect_uri=HTTP://YOUR_CALL_BACK_URL&grant_type=authorization_code" https://accounts.google.com/o/oauth2/token
Изменив THIS_IS_YOUR_CODE , YOUR_APP_ID , YOUR_APPS_SECRET_CODE , YOUR_CALL_BACK_URL на соответствующие значения.
Записать refresh_token возвращено.
Загрузите последнюю версию .net библиотеки Core Reporting V3.0 .net
http://code.google.com/p/google-api-dotnet-client/wiki/Downloads
В текущей версии Google.Apis.Analytics.v3.cs есть ошибка, из-за которой эта копия кода из этого файла исправляется в вашем локальном решении (и не ссылайтесь на Google.Apis.Analytics.v3.bin )
http://code.google.com/p/google-api-dotnet-client/source/browse/Services/Google.Apis.Analytics.v3.cs?repo=samples&name=20111123-1.1.4344-beta
И измените свойство Dimensions с List<system.string>
на string
.
Или вы получите ошибку, как я, и этот парень сделал http://www.evolutiadesign.co.uk/blog/using-the-google-analytics-api-with-c-shar/
Затем вы можете использовать свой токен обновления, чтобы сгенерировать токен доступа без участия пользователя, и использовать токен доступа, чтобы создать отчет для Google Analytics.
using System;
using DotNetOpenAuth.OAuth2;
using Google.Apis.Authentication.OAuth2;
using AnalyticsService = Google.Apis.Analytics.v3.AnalyticsService;
class Program
{
public static void Main()
{
var client = new WebServerClient(GoogleAuthenticationServer.Description, "YOUR_APP_ID.apps.googleusercontent.com", "YOUR_APPS_SECRET_CODE");
var auth = new OAuth2Authenticator<WebServerClient>(client, Authenticate);
var asv = new AnalyticsService(auth);
var request = asv.Report.Get("2012-02-20", "2012-01-01", "ga:visitors", "ga:YOUR_GOOGLE_ANALYTICS_ACCOUNT_ID");
request.Dimensions = "ga:pagePath";
request.Sort = "-ga:visitors";
request.MaxResults = 5;
var report = request.Fetch();
Console.ReadLine();
}
private static IAuthorizationState Authenticate(WebServerClient client)
{
IAuthorizationState state = new AuthorizationState(new string[]{}) { RefreshToken = "REFRESH_TOKEN" };
client.RefreshToken(state);
return state;
}
}