Как получить данные 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 позволяет передавать учетные данные. Просто начните с этого примера канала данных.
// 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