2012-12-07 162 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來解析他們的應用程序。