示例:Bejeweled Blitz经常运行事件和促销活动,点击后会转到他们的应用页面 . 在那里,应用程序可以通过关注促销链接并分享奖励来查看该页面已到达 .
这是怎么做到的?我需要做些什么来实现类似的功能?据我所知,由于域名不同(Facebook与我的应用程序),父URL已超出界限,因此消息如何传递给应用程序?
Every app (Canvas, Page tab)您可以通过将 app_data 参数传递到链接到Facebook应用程序的任何URL来获取数据 . 然后将此参数值添加到signed_request .
app_data
因此,此URL [1524241_将允许您通过 signed_request 获取 promotion12 .
signed_request
promotion12
在PHP中,这会给你这样的东西:
$signed_request = $facebook->getSignedRequest(); $app_data = $signed_request['app_data'];
当然,你可以在那里传递任何字符串;例如,它可能是一个JSON字符串 .
这真的是从外部到应用程序内部获取数据的核心 .
希望这能帮到你!
Canvas app然而,在Canvas应用程序中,它更简单,每个查询参数都将传递给应用程序 .
所以, http://apps.facebook.com/myapp?somedata=hey 可以通过:
http://apps.facebook.com/myapp?somedata=hey
$data = $_GET['somedata'];
Facebook只会将这些参数附加到iframe网址 .
Docshttps://developers.facebook.com/docs/reference/login/signed-request/(很难找到,该死的FB文档)
这是通过用户单击的URL中传递的查询参数完成的 . 一个明显的例子是DoubleDownCasino共享用户点击的URL . 链接是:
http://apps.facebook.com/doubledowncasino/?pid=PNNTDP&target_url=pid%3APNNTDP
DoubleDownCasino可能做的是,一旦他们的画布应用加载,他们解析查询参数的URL, pid 和 target_url 参数帮助确定用户获得的"reward"的类型 . 一旦他们兑换它,点击相同的URL将不会再次获得奖励,因为它可以检查用户是否已经使用给定的 pid 和 target_url 兑换了优惠 .
pid
target_url
你的问题:
我上面解释的正是Bejweled Blitz在这个_1524256中的表现 . 如果您按照bit.ly短网址进行操作,则网址为:
http://apps.facebook.com/bejeweledblitz/?zgift=0/eTtVUuhF5ipdJmO1jlDhr96MtKjp1NYflJrcOddB6iZDH1y96K%2Bml6gC0%2B5yVN
因此,回答您的问题,Bejeweled Blitz通过附加查询参数来运行促销和奖励,在这种情况下,查询参数是 zgift ,然后他们可以通过获取用户正在访问的当前URL来解析他们的应用程序 .
zgift
2 回答
Every app (Canvas, Page tab)
您可以通过将
app_data
参数传递到链接到Facebook应用程序的任何URL来获取数据 . 然后将此参数值添加到signed_request .因此,此URL [1524241_将允许您通过
signed_request
获取promotion12
.在PHP中,这会给你这样的东西:
当然,你可以在那里传递任何字符串;例如,它可能是一个JSON字符串 .
这真的是从外部到应用程序内部获取数据的核心 .
希望这能帮到你!
Canvas app
然而,在Canvas应用程序中,它更简单,每个查询参数都将传递给应用程序 .
所以,
http://apps.facebook.com/myapp?somedata=hey
可以通过:Facebook只会将这些参数附加到iframe网址 .
Docs
https://developers.facebook.com/docs/reference/login/signed-request/(很难找到,该死的FB文档)
这是通过用户单击的URL中传递的查询参数完成的 . 一个明显的例子是DoubleDownCasino共享用户点击的URL . 链接是:
DoubleDownCasino可能做的是,一旦他们的画布应用加载,他们解析查询参数的URL,
pid
和target_url
参数帮助确定用户获得的"reward"的类型 . 一旦他们兑换它,点击相同的URL将不会再次获得奖励,因为它可以检查用户是否已经使用给定的pid
和target_url
兑换了优惠 .你的问题:
我上面解释的正是Bejweled Blitz在这个_1524256中的表现 . 如果您按照bit.ly短网址进行操作,则网址为:
因此,回答您的问题,Bejeweled Blitz通过附加查询参数来运行促销和奖励,在这种情况下,查询参数是
zgift
,然后他们可以通过获取用户正在访问的当前URL来解析他们的应用程序 .