Я использую ruby версии 2.2.10p489 и Rails версии 5.1.6. Я пытаюсь использовать камень omnicontacts для импорта контактов Hotmail в мое приложение с помощью потока oauth2.
Я следовал инструкциям, перечисленным в https://github.com/Diego81/omnicontacts.
Ниже приведен мой config/initializers/omnicontacts.rb
файл конфигурации:
require "omnicontacts"
Rails.application.middleware.use OmniContacts::Builder do
importer :hotmail, ENV['MICROSOFT_APP_ID'], ENV['MICROSOFT_APP_SECRET'], {:redirect_path => "/contacts/import/hotmail_or_other/"}
end
Когда я посещаю https://6663cb10.ngrok.io/contacts/hotmail в соответствии с инструкциями Диего на странице omnicontacts, меня не перенаправляют на страницу входа в Microsoft. Вместо этого я автоматически отправляюсь на действие show контроллера Contacts со следующими параметрами:
{"error_message"=>"not_authorized", "importer"=>"hotmail", "id"=>"failure"}
Если я введу URL-адрес oauth2
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=*CLIENT ID HERE*&response_type=id_token&redirect_uri=https%3A%2F%2F6663cb10.ngrok.io%2Fcontacts%2Fimport%2Fhotmail_or_other%2F&scope=openid&response_mode=fragment&state=12345&nonce=678910
прямо в мой веб-браузер, я могу ввести свой адрес электронной почты, но когда я нажимаю «Далее», я снова
автоматически отправляется на действие show контроллера Contacts со следующими параметрами:
{"error_message"=>"not_authorized", "importer"=>"hotmail", "id"=>"failure"}
Ниже приведена конфигурация моего приложения Microsoft,
URL перенаправления: https://6663cb10.ngrok.io/contacts/import/hotmail_or_other/
URL выхода из системы: https://6663cb10.ngrok.io/logout
Делегированные разрешения: Contacts.Read, User.Read
URL домашней страницы: https://6663cb10.ngrok.io/login
Я также заметил следующее в консоли, но не уверен, как решить эту проблему или действительно ли это актуально:
app/controllers/contacts_controller.rb:43:in `show'
Started HEAD "/contacts/hotmail" for 163.172.103.81 at 2019-01-05 15:00:03 -0500
Cannot render console from 163.172.103.81! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Started HEAD "/contacts/hotmail" for 2a02:4780:1:3::15 at 2019-01-05 15:00:56 -0500
Cannot render console from 2a02:4780:1:3::15! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Started HEAD "/contacts/hotmail" for 51.15.164.30 at 2019-01-05 15:01:02 -0500
Cannot render console from 51.15.164.30! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Started HEAD "/contacts/hotmail" for 51.15.164.31 at 2019-01-05 15:04:03 -0500
Cannot render console from 51.15.164.31! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Вот мой файл config / rout.rb:
Rails.application.routes.draw do
mount Ckeditor::Engine => '/ckeditor'
get 'password_resets/new'
get 'password_resets/edit'
get 'sessions/new'
root 'static_pages#home'
get '/help', to: 'static_pages#help'
get '/about', to: 'static_pages#about'
get '/contact_us', to: 'static_pages#contact_us'
get '/signup', to: 'users#new'
post '/signup', to: 'users#create'
get '/login', to: 'sessions#new'
post '/login', to: 'sessions#create'
delete '/logout', to: 'sessions#destroy'
get '/pictures/new/:id/imageable_type/:type', to: 'pictures#new', as: 'new_picture'
get '/contacts/import/google/start', to: 'contacts#import_from_google_start', as: 'new_from_google_contacts'
get '/contacts/import/google', to: 'contacts#import_from_google', as: 'create_from_google_contacts'
get '/contacts/import/hotmail_or_other/start', to: 'contacts#import_hotmail_and_or_yahoo_contacts_start', as: 'new_from_hotmail_and_or_yahoo_contacts'
get '/contacts/import/hotmail_or_other/', to: 'contacts#import_hotmail_and_or_yahoo_contacts', as: 'create_from_hotmail_and_or_yahoo_contacts'
resources :account_activations, only: [:edit]
resources :password_resets, only: [:new, :create, :edit, :update]
resources :pictures, only: [ :create, :update, :destroy]
resources :contacts
resources :users
# For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
конец