Как получить данные Google Analytics, используя OAuth? - PullRequest
9 голосов
/ 15 февраля 2011

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

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

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

спасибо

Ответы [ 4 ]

11 голосов
/ 01 марта 2011

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

Чтобы все заработало, вам потребуется 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;

В DotNetOpenAuth есть пример проекта с именем OAuthConsumer, который вам нужен. Измените его на требуемую авторизацию для Google 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 здесь , чтобы получить ключ и секретный ключ пользователя

1 голос
/ 15 февраля 2011

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

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

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

* (Поскольку вы отметили вопрос )

Редактировать: Подробнее об использовании 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).

0 голосов
/ 20 октября 2011

Не думаю, что вам нужно связываться с 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
0 голосов
/ 15 февраля 2011

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

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

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

...