【问题标题】:I'm getting a Facebook logo (rather than the auth popup) when first authenticating for an iframe app首次对 iframe 应用进行身份验证时,我得到一个 Facebook 徽标(而不是身份验证弹出窗口)
【发布时间】:2011-10-25 11:28:14
【问题描述】:

我正在使用 RoR 3.1 和 Koala 构建 Facebook Iframe 应用。当新用户访问我的应用程序时,iframe 中会显示 Facebook 徽标和“转到 Facebook”链接。单击徽标时,将显示权限弹出窗口。单击允许工作 - 之后我的应用程序运行良好。我看到了一些关于这个主题的其他帖子,但没有一个能让我找到解决方案。

这似乎与此问题中记录的问题相同,但答案对我不起作用:Facebook OAuth login for iframe canvas apps displays a logo image and a Go to Facebook.com caption instead of logging in

我尝试在 index.html.erb 文件的顶部包含 top.location.href,并使用硬编码 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 >

感谢您的帮助! 丽兹

【问题讨论】:

  • 您是否尝试将target="_top" 添加到您的链接中?这将打开顶部文档中的链接。但是重定向 uri(下一个)应该是您的画布 url 而不是网站:https://apps.facebook.com/appnamespace
  • @ifaour - 哪个链接应该有 target="_top",哪个重定向调用应该转到 apps.facebook.com/appnamespace?我在上面添加了我的代码,这样你就可以看到我在做什么。感谢您的帮助!

标签: facebook oauth


【解决方案1】:

我想我现在已经解决了这个问题。我正在沙盒模式下开发我的应用程序。当我在“设置”_>“高级”中配置我的应用程序,并在 Facebook 上将其从沙盒模式中取出时,它就开始工作了。我还启用了“Enahnced Auth Dialog”,现在显示了新的、更友好的 Auth Dialog,而不是讨厌的 Facebook 徽标。

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

【讨论】:

  • 恭喜解决!如果有能力,请确保将您的答案标记为“已接受”,以便其他人可以从您的成功中学习。干杯~
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-14
  • 2021-10-25
  • 2020-08-28
  • 1970-01-01
  • 2019-05-15
  • 1970-01-01
相关资源
最近更新 更多