gpt4 book ai didi

ruby-on-rails - Ruby on Rails OmniAuth Facebook 适用于 Heroku 上的 Live App 但不适用于 Cloud9 上的测试应用

转载 作者:行者123 更新时间:2023-11-30 05:22:30 25 4
gpt4 key购买 nike

几周来我一直在努力解决这个问题,但就是想不通。

我正在管理一个发布到 Facebook 的 Ruby On Rails 应用程序。开发环境位于 Cloud9 IDE 中,实时站点托管在 Heroku 上。该应用程序在 Developers.Facebook.com 有一个相应的帐户,其中包含一个完整的应用程序和一个与之关联的测试应用程序。

我的 Heroku 设置与完整的 Facebook 应用程序完美配合。

问题始于 Facebook 测试应用程序中的 Cloud9 设置。每当我尝试通过 API 连接时,都会收到以下错误:

enter image description here

紧随其后的是这个错误:

enter image description here

我已尝试为我的 URL 使用以下选项,但似乎没有任何效果:

https://{workspace}-{username}.c9.io/
https://{workspace}-{username}.c9.io:80/
https://{workspace}-{username}.c9.io:8080/
https://{workspace}-{username}.c9users.io/
https://{workspace}-{username}.c9users.io:80/
https://{workspace}-{username}.c9users.io:8080/

这是我的 FacebookAccount 模型。

class FacebookAccount < ActiveRecord::Base
belongs_to :user
has_many :facebook_pages

if Rails.env.production?
FACEBOOK_APP_ID = ENV["FACEBOOK_APP_ID"]
FACEBOOK_SECRET = ENV["FACEBOOK_SECRET"]
else
FACEBOOK_APP_ID = "XXXXXXXXXXXXXXX"
FACEBOOK_SECRET = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
end

def self.from_omniauth(auth)
oauth = Koala::Facebook::OAuth.new(FACEBOOK_APP_ID, FACEBOOK_SECRET)
new_access_info = oauth.exchange_access_token_info auth.credentials.token
new_access_token = new_access_info["access_token"]
new_access_expires_at = DateTime.now + new_access_info["expires"].to_i.seconds
where(provider: auth.provider, uid: auth.uid).first_or_initialize.tap do |facebook_account|
facebook_account.provider = auth.provider
facebook_account.uid = auth.uid
facebook_account.name = auth.info.name
facebook_account.image = auth.info.image
facebook_account.email = auth.info.email
facebook_account.oauth_token = new_access_token
facebook_account.oauth_expires_at = new_access_expires_at
facebook_account.save!
end
end
end

最佳答案

当您在 Facebook 开发者设置页面中为您的网站设置 url 时,您必须提供两个 url。

  1. 您网站的基本网址 (www.example.com)
  2. 您网站的回调 url (www.example.com/auth/facebook/callback)

如果一个或另一个不存在,您将收到这些错误,告诉您回调 URL 未列入白名单或网站 URL 未列入白名单。

在“设置”>“基本”下将您的网站添加为平台,然后查找“添加平台”。在那里添加您的网站 URL。

enter image description here

c9好像是在callback URI上加了一个端口号。尝试将该端口号添加到 OAuth 有效回调 URI:

http://[workspace]-[username].c9.io:80/auth/facebook/callbac k

关于ruby-on-rails - Ruby on Rails OmniAuth Facebook 适用于 Heroku 上的 Live App 但不适用于 Cloud9 上的测试应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40940278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com