首次对iframe应用进行身份验证时,我会获得一个Facebook徽标(而非auth弹出窗口)

时间:2011-10-25 11:28:15

标签: facebook oauth

我正在使用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 >

感谢您的帮助! 利兹

1 个答案:

答案 0 :(得分:0)

我想我现在已经解决了这个问题。我正在使用沙盒模式处理我的应用程序。当我在设置_&gt;中配置我的应用时高级,并在Facebook上脱离沙盒模式,它开始工作。我还启用了“Enahnced Auth Dialog”,现在显示新的,更友好的Auth Dialog而不是讨厌的Facebook徽标。

我希望这有助于其他可能遇到此问题的人。 FWIW,我不需要用top.location.href或javascript来做任何事情来使这个工作。