2012-12-07 165 views
0

示例:Bejeweled Blitz经常运行事件和促销活动,点击后会带您进入他们的应用程序页面。一旦到达那里,应用程序就可以通过关注促销链接并分享奖励来查看该页面。Facebook应用特殊礼物实施?

这是如何完成的?我需要做些什么来实现类似的功能?据我所知,由于域名不同(Facebook与我的应用程序),父母的URL是越界的,所以消息如何传递给应用程序?

回答

1

每一个应用程序(画布页选项卡)
你可以通过一个app_data参数的任何URL链接到Facebook的应用程序中获取数据。该参数值将被添加到signed_request

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

在PHP中,这将给你这样的事情:

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

当然,你可以通过有过任何字符串;例如它可能是一个JSON字符串。

这确实是从外部向应用程序内部获取数据的核心。

希望这能帮到你!

画布应用
在画布应用然而,这是更简单,每个查询参数将被传递给应用程序。

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

$data = $_GET['somedata']; 

Facebook将这些参数只是追加到iframe网址。

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

+0

谢谢。现在我不得不想知道,为什么我花了两个星期的时间在文档上搜索,而在提供了大量的奖励之后在这里等待答案。XD但是现在我知道了。如果您可以将我链接到相关文档页面,我会向您奖励赏金。 –

+0

嘿,我添加了很多信息,并且链接到了signed_request扩展文档,其中声明了'app_data'。我还特别为Canvas应用添加了一个部分,使用查询参数更容易。 –

+0

非常感谢。不幸的是,在我可以奖励它之前,赏金必须是特定的年龄,但它是你的全部:) –

1

这是在用户点击URL传递的查询参数进行。一个明显的例子是DoubleDownCasino分享他们的用户点击一个URL。这个链接是:

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

什么DoubleDownCasino可能根本是,一旦他们的画布应用程序加载时,他们解析URL的查询参数和pidtarget_url参数帮助确定哪种类型的“奖励”的用户得到。一旦他们兑换了它,点击相同的URL将不会再获得奖励,因为它可以检查用户是否已使用给定的pidtarget_url兑换了该优惠。

你的问题:

例子:宝石迷阵闪电战频繁地往返于活动和促销活动,点击后,带您到他们的应用程序页面。一旦到达那里,应用程序就可以通过关注促销链接并分享奖励来查看该页面。

我在上面解释的正是Bejweled Blitz在这个post中是如何做到的。如果你遵循通过bit.ly短网址,网址为:

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

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