2012-01-16 1 views
7

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

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

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

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

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

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

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

ответ

5

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

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

инструкции доступа Оффлайн можно найти здесь:

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

+0

Спасибо большое! Я посмотрю на это ... –

+4

Это сработало. Я нашел полезный [пример] (http://stackoverflow.com/a/7489566/1151937), в котором показано, как использовать токены обновления в библиотеке Google. –

+0

@ michael-ki Отлично! Рад, что вы нашли пример. +1 для обновления, чтобы он мог помочь другим. –

0

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

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", 
}); 
Смежные вопросы