我正在使用RoR 3.1和Koala构建Facebook Iframe应用。当新用户访问我的应用程序时,Facebook徽标和“转到Facebook”链接将显示在iframe中。单击徽标时,将显示弹出的权限。点击允许工作 - 之后我的应用程序运行正常。我在这个主题上看到了其他一些帖子,但没有一篇能让我找到解决方案。
这似乎与此问题中记录的问题相同,但答案对我不起作用:Facebook OAuth login for iframe canvas apps displays a logo image and a Go to Facebook.com caption instead of logging in
我尝试将top.location.href包含在我的index.html.erb文件的顶部,其中包含硬编码的URL:top.location.href =“https://www.facebook.com/dialog/permissions.request ?appid = xxx,没有运气。
我抓住了facebook徽标的链接,并尝试将其粘贴到top.location.href,没有运气。仅供参考,链接如下所示:https://www.facebook.com/dialog/permissions.request?app_id=XXX&display=page&next=http%3A%2F%2Feowyn.simularity.com%3A3000%2Fgifty%2Fcallback&response_type=code&fbconnect=1&perms=user_likes%2Cuser_groups%2Cfriends_likes#
我阅读了Facebook上发布的关于它的错误,并以“按设计”关闭。 http://bugs.developers.facebook.net/show_bug.cgi?id=11326
这是一种糟糕的用户体验,我无法想象这就是预期的。我使用的其他任何应用都没有这个问题。单击链接转到应用程序,将出现权限对话框。
添加我的控制器代码,以防它有用:
SITE_URL="http://mysubdomain.example.com:3000/"
def index
@oauth = Koala::Facebook::OAuth.new(APP_ID, APP_SECRET, SITE_URL + 'myapp/callback')
session[:oauth] = @oauth
redirect_to @oauth.url_for_oauth_code( :permissions => "user_likes,user_groups,friends_likes")
end
#method to handle the redirect from facebook back to you
def callback
#get the access token from facebook with your code
session[:access_token] = session[:oauth].get_access_token(params[:code])
redirect_to '/myapp/menu'
end
def menu
@api = Koala::Facebook::API.new(session[:access_token])
< app code here >
感谢您的帮助! 利兹
答案 0 :(得分:0)
我想我现在已经解决了这个问题。我正在使用沙盒模式处理我的应用程序。当我在设置_&gt;中配置我的应用时高级,并在Facebook上脱离沙盒模式,它开始工作。我还启用了“Enahnced Auth Dialog”,现在显示新的,更友好的Auth Dialog而不是讨厌的Facebook徽标。
我希望这有助于其他可能遇到此问题的人。 FWIW,我不需要用top.location.href或javascript来做任何事情来使这个工作。