Google Analytics API V3.0: использование OAuth 2.0 с указанным паролем для входа в программный код - PullRequest
7 голосов
/ 16 января 2012

Я пытаюсь использовать новейшие клиентские библиотеки .NET для доступа к версии 3.0 API Google Analytics (Core Reporting API). Я зарегистрировал свое приложение в консоли API Google и использовал OAuth 2.0 для доступа к API.

Поскольку примеров использования Google Analytics API пока нет, Я использовал образец , который демонстрирует простейший вариант использования для службы OAuth2, и применил эту схему к своему контексту - с успехом.

(Примечание: я также нашел справку для исправления ошибок в исходном коде библиотеки Google.Apis.Analytics.v3.dll)

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

Я бы хотел пропустить этот процесс, написав свой пароль для входа в код программы (- открытым текстом). Моя проблема в том, что я не могу найти эту функцию в библиотеках. В Google Analyitcs версии 2.3 он работал с простыми строками C #:

AnalyticsService asv = new AnalyticsService("");
asv.setUserCredentials(CLIENT_USERNAME, CLIENT_PASS);

Кто-нибудь может мне помочь?

Ответы [ 2 ]

5 голосов
/ 20 января 2012

Ввод имени пользователя и пароля является проблемой безопасности.Google добавил автономный доступ только для этой цели.

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

Инструкции по автономному доступу можно найти здесь:

http://code.google.com/apis/accounts/docs/OAuth2WebServer.html#offline

0 голосов
/ 20 ноября 2013

Ну, это старый вопрос.Но вот пример кода, как заставить его работать.

PM> install-package google.apis -pre
PM> install-package google.apis.analytics.v3 -pre

Загрузите секретный файл json клиента с консоли Apis и добавьте его в свой проект с именем client_secret.Json.Возможно, вам придется изменить его свойства, чтобы создать содержимое действия и скопировать его на выход, если новее.

// Autentication
UserCredential credential;
using (var stream = new System.IO.FileStream("client_secret.json", System.IO.FileMode.Open,      System.IO.FileAccess.Read))
 {
  credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
  GoogleClientSecrets.Load(stream).Secrets,
  new[] { AnalyticsService.Scope.AnalyticsReadonly },
  "user", CancellationToken.None, new FileDataStore("Analytics.Auth.Store")).Result;
  }

// создает службу

AnalyticsService service = new AnalyticsService(new BaseClientService.Initializer() {
     HttpClientInitializer = credential,
     ApplicationName = "Analytics API sample",
 });
...