我正在使用omnicontacts gem,以便用户可以在我的网站上邀请他们的联系人。我已经为 Google 成功设置了它。
根据 gem 的自述文件的建议,我已经使用 contacts_callback 方法设置了一个 omnicontacts 控制器。
和一条路线:get "/contacts/:importer/callback" => "omnicontacts#contacts_callback"
在omnicontacts.rb 的初始化程序中,我有以下内容:
require "omnicontacts"
Rails.application.middleware.use OmniContacts::Builder do
importer :gmail, "hidden-client-key", "hidden-secret-key", {redirect_path: "/contacts/gmail/callback"}
importer :facebook, "hidden-client-key", "hidden-secret-key", {:redirect_path => "/contacts/facebook/callback" }
importer :hotmail, "hidden-client-key", "hidden-secret-key", {redirect_path: "/contacts/hotmail/callback"}
end
根据 gem 的自述文件,最后两个(facebook 和 hotmail)不需要redirect_path,但以防万一我用它测试过两者,但我仍然收到redirect_uri 无效的错误。当我在寻找解决方案时,我发现 :redirect_path 是 :callback_path 的地方,并且也尝试过,但没有运气。
在 Microsoft 应用程序(用于 hotmail)上,我得到了关于错误的更长描述:
为输入参数“redirect_uri”提供的值无效。预期值为“ https://login.live.com/oauth20_desktop.srf ”或与为此客户端应用程序注册的重定向 URI 匹配的 URL。
结果,我继续为这个客户端应用程序注册了一个重定向 URI。URI 是与回调路径匹配的http://example.com/contacts/hotmail/callback 。
仍然,得到同样的错误。有什么线索吗?