2015-02-10 143 views
0

我正在使用Omnicontact寶石,但我有一些問題,使其與Gmail的作品:我總是得到「redirect_uri_mismatch」錯誤!與Gmail帳戶Omnicontact redirect_uri_mismatch

下面的代碼 '配置/ inizializers/omnicontacts.rb'

3 require "omnicontacts" 
    4 
    5 Rails.application.middleware.use OmniContacts::Builder do 
    6 importer :gmail, "MySecretId", "MySecretKey", {:redirect_path => "/invites/gmail/contact_callback" } 
    7 end 

'invites_controller.rb' 控制器代碼:

3  def index 
    4   @contacts = request.env['omnicontacts.contacts'] 
    5   respond_to do |format| 
    6    format.html 
    7   end 
    8  end 

routes.rb中的代碼:

3  get "/invites/:provider/contact_callback" => "invites#index" 
    4  get "/contacts/failure" => "invites#failure" 
    5  root :to => "invites#index" 

這裏是谷歌應用程序的重定向uri:

https://www.example.com/oauth2callback 
https://127.0.0.1:3000/invites/gmail/contact_callback 
https://127.0.0.1/invites/gmail/contact_callback 

我該如何解決這個問題?

回答

0

我知道這個問題有點古老,但這是發生的,因爲gmail不會讓你有IP地址作爲重定向uris。你需要添加這樣的東西。 yourmachine.example.com:3000/invites/gmail/contact_callback 然後在您的主機文件中,您需要添加以下行: 192.168.1.2 devmachine yourmachine.example.com 其中192.168.1.X是您的本地IP地址。

您現在應該可以通過訪問本地機器中的以下URL:yourmachine.example.com:3000來訪問您的本地Rails應用程序。谷歌現在接受這個redirect_uri,因爲它是一個有效的主機名,你應該能夠恢復你的聯繫。