Разное

Как сделать слово ссылкой вконтакте: подбор и сравнение вкладов, кредитов, кредитных карт, автострахование, калькулятор ОСАГО и каско, рейтинг страховых компаний

13.08.2023

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 =>
"вконтакте") 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" конец конец конец
11

Зарегистрируйтесь или войдите в систему

Зарегистрируйтесь с помощью 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, Пуна, Индия

Аннамария Петроцца , Итальянский технологический институт, Италия

Жийонг Джейсон Рен , Принстонский университет, США

Родни Руофф , Ульсанский национальный институт науки и технологий , Корея

Дженнифер Рупп , Массачусетский институт Технологии, США

Шринивасан Сампат , Индийский институт науки, Индия

Уве Шредер , Технический университет Брауншвейга, Германия

Дэвид Синтон , Университет Торонто, Канада

Генри Снейт , Оксфордский университет, Великобритания

Роберт Соколов , Принстонский университет, США

Джефферсон В.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *