ruby on rails — Токен доступа вконтакте апи
спросил
Изменено 7 лет, 8 месяцев назад
Просмотрено 708 раз
У меня есть приложение rails с авторизацией через devise
и omniauth-vk
. Это код в omniauth_callbacks_controller.rb
Пользователи::OmniauthCallbacksController < Devise::OmniauthCallbacksController деф вконтакте привязка.pry @user = User.from_omniauth(request.env["omniauth.auth"]) токен = request.env["omniauth.auth"]["учетные данные"]["токен"] current_user.token = @vk.token current_user.vk_id = @vk.user_id current_user.save @vk = VkontakteApi::Client.new(current_user.token) если @user.persisted? sign_in_and_redirect @user, :event => :authentication #это вызовет исключение, если @user не активирован set_flash_message(:notice, :success, :kind =>"вконтакте") if is_navigational_format? еще session["devise. vkontakte_data"] = request.env["omniauth.auth"] redirect_to new_user_registration_url если request.env["omniauth.auth"].info.email.blank? redirect_to "/users/auth/vkontakte?auth_type=rerequest&scope=email" конец конец конец
Я хочу связать текущего аутентифицированного пользователя с его токеном, но не знаю как.
Когда я тестирую с помощью pry
string current_user.token = @vk.token
у меня возникает следующее исключение:
NoMethodError: неопределенный метод `token' для nil:NilClass from (pry):11:in `вконтакте'
ruby-on-rails- rubygems
- omniauth
- vk
Вам не кажется, что вы определили @vk
не в том месте?? проверьте этот код.
Пользователи::OmniauthCallbacksController < Devise::OmniauthCallbacksController деф вконтакте @user = User.from_omniauth(request.env["omniauth.auth"]) токен = request.env["omniauth.auth"]["учетные данные"]["токен"] @vk = VkontakteApi::Client. new(current_user.token) current_user.token = @vk.token current_user.vk_id = @vk.user_id current_user.save если @user.persisted? sign_in_and_redirect @user, :event => :authentication #это вызовет исключение, если @user не активирован set_flash_message(:notice, :success, :kind =>11"вконтакте") if is_navigational_format? еще session["devise.vkontakte_data"] = request.env["omniauth.auth"] redirect_to new_user_registration_url если request.env["omniauth.auth"].info.email.blank? redirect_to "/users/auth/vkontakte?auth_type=rerequest&scope=email" конец конец конец
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через FacebookОпубликовать как гость
Электронная почтаТребуется, но никогда не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
Журнал Energy & Environmental Science
Хуан Бискерт , Университет Хауме I, Испания
Берни Булкин , Комиссия по устойчивому развитию, Великобритания
Стивен Кэмпбелл , Automotive Fuel Cell Co., Канада
Эмили Картер , Принстонский университет, США
Кайли Кэтчпоул , Австралийский национальный университет, Австралия
Джефил Чо , Ульсанский национальный институт науки и технологий (UNIST), Корея
Вононг Чой , Корейский институт энергетических технологий, Корея
Иб Чоркендорф , Технический университет Дании, Дания
Питер Добсон , Оксфордский университет, Великобритания
Казунари Домен , Токийский технологический институт, Япония
Ньевес Эспиноса , Университет Мурсии, Испания
Хунджин Фан , Наньянский технологический университет, Сингапур
Эльжбета Фраковяк , Познаньский технологический университет, Польша
Hermenegildo García , Instituto de Tecnología Quimica CSIC- UPV, Испания
Хосе Голдемберг , Университет Сан-Паулу, Бразилия
Гарри Грей
Дирк Гульди , Университет Эрланген-Нюрнберг, Германия
Андерс Хагфельдт, Федеральная политехническая школа Лозанны, EPFL, Швейцария
Лаура Херц 90 074, Оксфордский университет, Великобритания
Стивен Холдкрофт , Университет Саймона Фрейзера /NRC, Канада
Джордж Хубер , Университет Висконсин-Мэдисон, США
Оливер Индервилди , Оксфордский университет, Великобритания
Сайфул Ислам , Оксфордский университет, Великобритания
Mercouri G Kanatzidis , Северо-Западный университет, США
Томас Кирхартц , Forschungszentrum Jülich (FZJ), Германия
Акихико Кудо , Токийский научный университет, Япония
Пуи См. Lee , Наньянский технологический университет, Сингапур
Nathan Lewis , Калифорнийский технологический институт (Калифорнийский технологический институт), США
Chengdu Liang , Центр изучения нанофазных материалов Окриджская национальная лаборатория, США
Джеффри Р. Лонг , Калифорнийский университет в Беркли, США
Йи-Чун Лу , Китайский университет в Гонконге, Китай
Кристофер Р. Макнил , Университет Монаш, Австралия
Шелли Минтир , The Университет Юты, США
Артур Нозик , Национальная лаборатория возобновляемых источников энергии, США
Сатиш Огале , Индийский институт научного образования и исследований IISER, Пуна, Индия
Аннамария Петроцца , Итальянский технологический институт, Италия
Жийонг Джейсон Рен , Принстонский университет, США
Родни Руофф , Ульсанский национальный институт науки и технологий , Корея
Дженнифер Рупп , Массачусетский институт Технологии, США
Шринивасан Сампат , Индийский институт науки, Индия
Уве Шредер , Технический университет Брауншвейга, Германия
Дэвид Синтон , Университет Торонто, Канада
Генри Снейт , Оксфордский университет, Великобритания
Роберт Соколов , Принстонский университет, США
Джефферсон В.