1

我有一个Facebook时间轴页面选项卡应用程序,它运行在粉丝页面的IFRAME中。像时间轴页面选项卡内的详细信息页面

在应用程序的主页上,我们显示了10个作业,用户可以点击进入单个图书的详细页面。

我们希望在这些详细信息页面上添加一个LIKE按钮,以便Facebook上的用户可以在他们的流中喜欢并共享该作业。

该应用程序是完全动态的,因此不同的客户可以在他们的粉丝页面上安装应用程序并列出他们自己的作业。 (例如,可口可乐将其安装在他的可口可乐页面上,并在公司内部列出工作,然后微软安装它,并且做同样的事情)

问题涉及og:元标记和喜欢的详细信息页面链接的重定向,就在右边的facebook公司页面和显示该作业的相对右侧详细页面内。

我可以做,工作,但不是在同一时间这两个东西:

A.正确的Facebook得到OG:元标记在头部分,有图像,标题,描述当我用下面的实现类似按钮(不包括“数据HREF”额外属性)的

<div class="fb-like" 
      data-send="false" 
      data-layout="button_count" 
      data-show-faces="false" 
      data-action="like" 
      data-font="arial"> 
    </div> 

的问题是,不指定数据href属性(和OG:URL元被完全忽略),这是要创建一个链接当前页面=>在iframe中预期的当前页面=>所以结果将是,当你点击Facebook上的共享作业时,你将会重定向不是在Facebook应用程序的内部安装,而是在页面右侧的详细信息页面上,但是放置在托管应用程序的服务器上的详细信息页面上。

B.如果我改为指定数据href属性

<div class="fb-like" 
      data-href=<%= "http://www.facebook.com/pages/:page/#{session[:fb_page_id]}?v=app_XXXXXXX&app_data=#{@job_details.job_id}" %> 
      data-send="false" 
      data-layout="button_count" 
      data-show-faces="false" 
      data-action="like" 
      data-font="arial"> 
    </div> 

这样做我可以在Facebook上发布右侧链接(这样的话使用& app_data文件属性),我可以得到完美的重定向工作。 但在缺点方面,og:metatags完全被忽略,而是facebook选择页面标签metatags(顶部iframe托住pagetab应用程序),所以我在Facebook上张贴了一个垃圾链接,告诉关于页面上的页面与页面应用图片。而更大的缺点是,当你喜欢在应用程序上的工作时,所有的工作似乎都很受欢迎(基本上,iFrame应用程序变成了喜欢的页面...而不是被选为喜欢页面的工作详细信息页面)

是否有任何知道如何解决这个问题的天才?我需要让A和B同时工作以获得所需的结果!

请帮忙!!! :(

回答

2

我已经找到了自己的解决方案。

  • Like按钮=>使用href和REF属性,尤其是穿上裁判Facebook粉丝页面的ID。传递当前页面的URL将还要正确加载和共享og:元标记。

    <div class="fb-like" 
          data-send="false" 
          data-show-faces="false" 
          data-layout="button_count" 
          data-font="arial" 
          data-action="recommend" 
          href=<%= "https://app.com/jobs/job_details.job_id" %> 
          ref=<%= FB_PAGE_ID %>> 
        </div> 
    

一旦你通过ref属性的Facebook,墙壁上的链接会被Facebook公布与特别附加了“fb_ref”参数额外的查询字符串:

例如带有参数的按钮: HREF = <%= “https://app.com/jobs/job_details.job_id” %> 和 REF = <%= 332325142248470%>

变为: https://app.com/jobs/a0Ed000000a54bkEAA?fb_ref=332325142248470&fb_source=profile_multiline

  • 当用户点击我们要成为正确的页面标签的应用程序和合适的工作详情页内页权重定向的链接。为了实现这一目标,我们设立了到控制器/ show动作(在Ruby中corrisponds到CONTROLLER_NAME/ID),一个新的重定向,记住,裁判就会把查询字符串里面我们的HREF链接后:

    if params[:fb_ref] 
        redirect_to "http://www.facebook.com/pages/:page/#{params[:fb_ref]}?v=app_xxxxx&app_data=#{params[:id]}" 
    end 
    

正如你所看到的,我们创建了一个新的动态url,它将使用facebook“signed_riquest”(http://developers.facebook.com/docs/authentication/signed_request/)的“app_data”参数来传递给我们的应用程序右侧的详细信息页面可视化,并将我们重定向到正确的Facebook页面。

  • 一旦完成此操作,我们只需正确管理现在使用signed_request的新app_data参数。在我在我的主控制器的一个情况下,我用:

     if fb_signed_request[:app_data]    
         redirect_to "/jobs/#{session[:app_data]}" 
         end 
    

我们将看到我们的应用程序加载正确的页面和合适的工作详细信息页面!

希望会帮助别人!

相关问题