Я использую Rails + Garb Gem (Sija Branch) + omniauth-google-oauth2 Gem, и я могу успешно пройти аутентификацию с помощью API Google Analytics и извлекать данные, которые генерирует наше приложение при использовании Логин пользователя, например:Невозможно получить токен доступа OAuth2 для API Google Analytics
Garb::Session.login('USERNAME', '<PASSWORD>')
можно затем использовать Наряд для подключения к Analytics Профиль Я хочу и вытащить из него данные и отображает некоторые диаграммы на веб-странице. Все это прекрасно работает.
Однако, я хочу использовать oAuth2 для аутентификации с помощью Google Analytics, поэтому мне пришлось установить ветку Sija Garb Gem из Github (она поддерживает oAuth2), и я также установил gem omniauth-google-oauth2. В настоящее время в теории я должен быть в состоянии проверить подлинность, используя следующий код:
Garb::Session.access_token = access_token # an instance of OAuth2::Client
Именно в этот момент, что он получает немного туманно для меня, и я был бы весьма признателен некоторые рекомендации. Вот как далеко я получил:
1) Я создал проект в консоли Google API и включен Analytics API под услуги
2) Это дало мне ID клиента и секрет клиента
3) Я наткнулся на этот код, который я мог заселить с ID и Secret выше:
client = OAuth2::Client.new(
GOOGLE_CLIENT_ID,
GOOGLE_CLIENT_SECRET,
{
:site => 'https://accounts.google.com',
:authorize_url => '/o/oauth2/auth',
:token_url => '/o/oauth2/token'
})
4) Тогда есть следующий фрагмент кода:
response = OAuth2::AccessToken.new(
client,
STORED_TOKEN, {
refresh_token: STORED_REFRESH_TOKEN,
expires_at: STORED_EXPIRES_AT
})
5), а затем в теории связывают с:
Garb::Session.access_token = response
Проблема у меня есть, у меня нет токена информации в Направьте (4) выше. Мне кажется, что с oAuth2 мне нужно выполнить «рукопожатие» один раз и распечатать значения токена возврата? Возможно, через Rails-код, который печатает возвращаемые значения и затем вставляет значения токена в константу в приложении Rails, чтобы я мог использовать их в приведенном выше коде? Я действительно смущен. Как я упоминал ранее, веб-приложение прекрасно работает с использованием аутентификации пользователя. Все веб-приложение выполняет аутентификацию с помощью аналитики, вытягивая некоторые данные и рисуя диаграмму. Но я застрял преобразовать его в oAuth2 как Я просто не знаю, как получить токен доступа, который ищет Garb Gem. Следует также отметить, что это не общедоступный веб-сайт с аутентификацией нескольких пользователей, это веб-сайт CMS, который подключается к нашим собственным данным Analytics.
Я видел некоторые частичные фрагменты аспектов этого, но не полностью объясненный или рабочий пример. Я был бы очень признателен за любое руководство и помощь в этом вопросе.
Большое спасибо заранее,
JR
Большое спасибо за ваш подробный ответ. Я действительно получил это, чтобы работать с использованием тех же Rails, но используя cURL, чтобы захватить токен доступа/обновления. Мне не разрешили отвечать на мой вопрос до тех пор, пока я так не поставил его в ответ ниже и не пометил ваше мнение как правильно. Приветствую снова! –
Я сделал то же самое, и я получаю эту ошибку *** OAuth2 :: Ошибка Исключения: Xml version = "1.0" encoding = "UTF-8"?> GData Недостаточное разрешение internalReason > –
RailsEnthusiast
insufficientPermissions