示例:宝石迷阵闪电战经常运行事件和促销活动,点击后会转到他们的应用页面。在那里,应用程序可以通过关注促销链接看到该页面已到达并分叉奖励。
这是怎么做到的?我需要做些什么来实现类似的功能?据我所知,由于域名不同(Facebook与我的应用程序),父URL已超出界限,因此消息如何传递给应用程序?
答案 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,pid
和target_url
参数有助于确定用户获得什么类型的“奖励”。兑换后,点击相同的网址将无法再次获得奖励,因为它可以检查用户是否已使用给定的pid
和target_url
兑换了优惠。
你的问题:
示例:宝石迷阵闪电战经常运行事件和促销活动,点击后会转到他们的应用页面。在那里,应用程序可以通过关注促销链接看到该页面已到达并分叉奖励。
我上面解释的是Bejweled Blitz在post中是如何做到的。如果您按照bit.ly短网址进行操作,则网址为:
回答你的问题,Bejeweled Blitz通过附加查询参数来运行促销和奖励,在这种情况下是zgift
,然后他们可以通过获取用户正在访问的当前URL来解析他们的应用。