Как получить данные Google Analytics с помощью OAuth?

Hy ребята, мы разрабатываем систему, которая предоставит пользователям доступ к Google Analytics. Я пытаюсь реализовать его таким образом, чтобы пользователю не нужно было вводить свои учетные данные Google на нашем сайте, поэтому пытаюсь заставить его работать с помощью своего логина.

У меня есть решение, которое получает аналитику с использованием электронной почты и пароля пользователя. Я ищу решение, которое не потребует электронной почты и пароля пользователя, но ничего не может найти.

Как это можно сделать? любой советы или ссылки будут оценены.

спасибо

4 ответов


ОК, ребята, после нескольких дней борьбы я, наконец, понял это. В интернете нет документации, и люди, которые делали это раньше, почему-то не хотели делиться своим успехом. Я нашел это обсуждение что помогло мне.

чтобы заставить его работать, вам понадобится DotNetOpenAuth от http://www.dotnetopenauth.net/ и gdata от http://code.google.com/p/google-gdata/

так

using DotNetOpenAuth.ApplicationBlock;
using DotNetOpenAuth.OAuth;

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

In DotNetOpenAuth существует пример проекта с именем OAuthConsumer, который вам нужен. Измените его на requiest authorization for Analytics:

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

это даст вам токен и секрет токена. Вы можете использовать их следующим образом:

        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);

эту услугу вы можете использовать как здесь или здесь

и последнее, вы не будете доступны, чтобы попробовать и проверить его на localhost таким образом, вам понадобится домен, который должен быть зарегистрирован в Google здесь для того, чтобы получить потребительский ключ и секрет


есть .NET/C# class для аутентификации данных Google, которые могут быть использованы для доступа к API экспорта данных Google Analytics (так как API является частью стандарта данных Google, хотя вам может потребоваться внести конкретные корректировки Google Analytics.)*

аутентификация лучше всего управляется путем создания Google Зарегистрированное Приложение, так как это позволяет сделать аутентификацию без предупреждений безопасности (и, если на то пошло, провалы безопасности).

существует три формы аутентификации; в 'безопасной'/беспарольный из них OAuth и AuthSub (который является Google-проприетарной версией OAuth); жестко закодированная версия имени пользователя и пароля упоминается Google как "ClientLogin" и не считается безопасной или идеальной для приложений с несколькими пользователями.

*(Так как вы отметили вопрос .netc#)

Edit: подробнее о использование AuthSub или OAuth с библиотекой .NET:

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

примеры кода о том, как использовать библиотеки для аутентификации OAuth:http://code.google.com/apis/gdata/docs/auth/oauth.html#2LeggedOAuth (перейдите на вкладку .NET).


основы работы с OAuth здесь:http://code.google.com/apis/accounts/docs/OpenID.html#working

аутентификация с помощью OAuth:http://code.google.com/apis/accounts/docs/OAuth.html

после аутентификации пользователя с помощью OAuth у вас будет токен запроса, который работает так же, как и тот, который вы получаете из API входа в Google. Оттуда он должен быть таким же, как имя пользователя/пароль.


Я не думаю, что вам нужно возиться с OAuth.

api Google analytics позволяет передавать учетные данные. Просто начните с этого примера канала данных.

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);

загрузите клиентскую библиотеку здесь

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

получить почувствуйте запросы данных, поиграйте с этим, а затем скопируйте значения в пример выше

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