Facebook app特别礼品实施?

时间:2012-12-07 02:29:17

标签: facebook

示例:宝石迷阵闪电战经常运行事件和促销活动,点击后会转到他们的应用页面。在那里,应用程序可以通过关注促销链接看到该页面已到达并分叉奖励。

这是怎么做到的?我需要做些什么来实现类似的功能?据我所知,由于域名不同(Facebook与我的应用程序),父URL已超出界限,因此消息如何传递给应用程序?

2 个答案:

答案 0 :(得分:1)

每个应用(画布,页面标签)
您可以通过将app_data参数传递到链接到Facebook应用程序的任何URL来获取数据。然后,此参数值将添加到signed_request

因此,此网址http://facebook.com/mypage/app_123?app_data=promotion12将允许您通过promotion12获取signed_request

在PHP中,这会给你这样的东西:

$signed_request = $facebook->getSignedRequest();
$app_data = $signed_request['app_data'];

当然,你可以在那里传递任何字符串;例如,它可能是一个JSON字符串。

这真的是从应用程序外部到内部获取数据的核心。

希望这能帮到你!

Canvas app
然而,在Canvas应用程序中,它更简单,每个查询参数都将传递给应用程序。

所以,http://apps.facebook.com/myapp?somedata=hey可以通过:

$data = $_GET['somedata'];

Facebook只会将这些参数附加到iframe网址。

<强>文档
https://developers.facebook.com/docs/reference/login/signed-request/(很难找到,该死的FB文档)

答案 1 :(得分:1)

这是通过用户单击的URL中传递的查询参数完成的。一个明显的例子是DoubleDownCasino共享用户点击的URL。链接是:

  

http://apps.facebook.com/doubledowncasino/?pid=PNNTDP&target_url=pid%3APNNTDP

DoubleDownCasino可能做的是,一旦他们的画布应用加载,他们就会解析查询参数的URL,pidtarget_url参数有助于确定用户获得什么类型的“奖励”。兑换后,点击相同的网址将无法再次获得奖励,因为它可以检查用户是否已使用给定的pidtarget_url兑换了优惠。

你的问题:

  

示例:宝石迷阵闪电战经常运行事件和促销活动,点击后会转到他们的应用页面。在那里,应用程序可以通过关注促销链接看到该页面已到达并分叉奖励。

我上面解释的是Bejweled Blitz在post中是如何做到的。如果您按照bit.ly短网址进行操作,则网址为:

  

http://apps.facebook.com/bejeweledblitz/?zgift=0/eTtVUuhF5ipdJmO1jlDhr96MtKjp1NYflJrcOddB6iZDH1y96K%2Bml6gC0%2B5yVN

回答你的问题,Bejeweled Blitz通过附加查询参数来运行促销和奖励,在这种情况下是zgift,然后他们可以通过获取用户正在访问的当前URL来解析他们的应用。