gpt4 book ai didi

ruby-on-rails - Facebook iframe 应用在用户授权后被重定向出 Canvas

转载 作者:行者123 更新时间:2023-12-04 06:10:36 26 4
gpt4 key购买 nike

在用户授权应用程序后,我的 facebook 应用程序被重定向到 Canvas url (http://my-domain/app)。步骤顺序描述如下:

1) 新用户在 Canvas 中打开应用程序并通过 Javascript 重定向重定向到 oauth 权限对话框

2)一旦用户授权了应用程序,应用程序的redirect_uri被调用,我得到了我在 session 中保存的访问 token

3)我还获取了授权用户的用户ID并将其保存到 session 中

4)当我将它重定向到 Canvas 网址时,它会移出 Facebook Canvas

5)如果我尝试将它重定向到 Canvas 页面(http://apps.facebook.com/app_name),它会陷入无限循环,因为 session 值被清除并重复该过程 - 我不知道为什么.

这是一个 rails 3 应用程序,我正在使用 koala gem。代码如下所示:

  def index
if (session[:access_token].blank?)
session[:oauth] = Koala::Facebook::OAuth.new(APP_ID, APP_SECRET, oauth_redirect_url)
end
@app_id = APP_ID
end

def redirect
session[:access_token] = session[:oauth].get_access_token(params[:code]) if params[:code]
if session[:access_token].blank?
flash[:error] = "You didn't authorize the application. Please authorize the application to throw a firecracker on your friend's wall!"
redirect_to :action => "authorize_app" and return
else
session[:fb_user_id] = Koala::Facebook::API.new(session[:access_token]).get_object("me")["id"]
end
redirect_to :action => "index"
end

我浪费了将近一天的时间试图修复它并寻找解决方案,但到目前为止还没有。

最佳答案

步骤 1、步骤 2、步骤 3 没问题

第 4 步:当用户授权您的应用程序时,它将被重定向到 yourapp.com( Canvas 网址)
在 Canvas 网址上,您将执行以下操作:

<script>
window.top.location='https://apps.facebook.com/yourapp' //(canvas page)
</script>

第 5 步:当你的 Canvas 页面被调用时,你会得到 signed_request然后用你的 fb api 你会解析它。

关于ruby-on-rails - Facebook iframe 应用在用户授权后被重定向出 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7831756/

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