0

我正在使用 ruby​​ 版本 2.2.10p489 和 Rails 版本 5.1.6。我正在尝试使用omnicontacts gem 使用oauth2 流将Hotmail 联系人导入我的应用程序。

我按照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

当我按照 Diego 在 omnicontacts 页面上的说明访问https://6663cb10.ngrok.io/contacts/hotmail时,我没有被重定向到 Microsoft 的登录页面。相反,我会使用以下参数自动发送到 Contacts 控制器的显示操作:

{"error_message"=>"not_authorized", "importer"=>"hotmail", "id"=>"failure"}

如果我输入 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

直接进入我的网络浏览器,我可以输入我的电子邮件地址,但是当我点击“下一步”时,我会再次自动发送到联系人控制器的显示操作,并带有以下参数:

{"error_message"=>"not_authorized", "importer"=>"hotmail", "id"=>"failure"}

下面是我的 Microsoft 应用程序配置,

重定向网址:https://6663cb10.ngrok.io/contacts/import/hotmail_or_other/

登出网址:https://6663cb10.ngrok.io/logout

委派权限:Contacts.Read、User.Read

主页网址: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/routes.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

结尾

4

0 回答 0