我有一个facebook时间线页选项卡应用程序,它运行在粉丝页面的IFRAME中。
在应用程序的主页上,我们显示了10个作业,用户可以点击到一本书的详细页面。
我们希望在这些细节页面上添加一个“相似”按钮,这样facebook上的用户就可以在流中喜欢并共享该工作。
这个应用程序是完全动态的,所以不同的客户可以在他们的粉丝页面上安装这个应用程序,并列出他们自己的工作。(例如可口可乐把它安装在他的可口可乐页面上,列出公司内的工作。然后微软也会安装它,并做同样的事情)
这个问题涉及到的问题是:元标记和喜欢的细节页面链接的重定向,就在facebook公司的正确页面和显示工作的相对正确的详细页面中。
我可以做好这两件事,但不能同时做:
答: Facebook在head部分正确地获得了og:metatag,并在我使用以下类似按钮的实现(没有"data-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应用程序-right页面-right详细信息页面,而是重定向到托管应用程序的服务器上的详细信息页。
B.如果我指定了data-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:metatag被完全忽略了,相反,facebook选择了页面标签元标记(页面标签元标签,它是页面应用程序的主机),所以我在facebook上被贴上了一个垃圾链接,上面写着facebook上的页面和页面应用图片。更大的缺点是,当你喜欢应用程序上的一个工作时,所有的工作看起来都很受欢迎(基本上iFrame应用程序变成了受欢迎的页面.而不是像喜欢的页面那样被选中的工作细节页面)
有什么天才知道怎么解决这个问题吗?我需要让A和B同时工作,以获得所要求的结果!
请帮助:(
发布于 2012-04-20 14:28:29
我自己找到了解决办法。
一旦将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
如果params:fb_ref redirect_to "http://www.facebook.com/pages/:page/#{params[:fb_ref]}?v=app_xxxxx&app_data=#{params[:id]}“结束
如您所见,我们创建了一个新的动态url,它将使用facebook "signed_riquest“(http://developers.facebook.com/docs/authentication/signed_request/)的”signed_riquest“参数,以便向应用程序传递要可视化的正确详细信息页,并将我们重定向到正确的facebook页面。
如果fb_signed_request:app_data redirect_to "/jobs/#{session:app_data}“结束
我们将看到我们的应用程序加载正确的页面和正确的工作细节页面!
希望会帮助别人的!
https://stackoverflow.com/questions/10190081
复制相似问题