[英]Access facebook canvas URL parameters from my app
我正在制作一個Facebook canvas應用(一個游戲),我希望我的玩家使用帶有url參數的鏈接,這些鏈接鏈接到游戲中的不同區域,即
https://apps.facebook.com/mgatlandtestapp?level=emeraldhillzone
如何在我的應用程序中訪問level = emeraldhillzone信息(客戶端在iFrame中使用javascript,或者在服務器端作為node.js應用程序)
到目前為止我嘗試過的事情:
這個已有4年歷史的答案指出,可以在客戶端代碼中進行操作,但沒有說明如何操作(對不起,如果我缺少明顯的內容!window.location提供了我的heroku服務器的位置,而不是facebook的URL。)
一些Facebook文檔使我認為這可行:
使用形式為https://apps.facebook.com/mgatlandtestapp?app_data=yourData的url,然后在服務器端將已簽名的請求發送到服務器,其中將包含一個app_data字段。
但是,當我這樣做時,已簽名的請求不包含app_data字段。
閱讀更多內容后,我認為只有在Facebook Page Tab(而不是Facebook Canvas Page)中加載應用程序時,app_data才起作用。
Facebook將初始POST發送到您的應用,其中包括url參數。 您可以從該POST請求中訪問url參數。
我使用此網址加載頁面:
https://apps.facebook.com/mgatlandtest/?level=emeraldhillzone
我在node.js服務器應用程序中使用了此代碼來處理請求
app.post('/*', function(request, response) {
console.log('url parameters:');
console.log(request.query);
response.redirect('/');
});
節點控制台中的輸出為:
網址參數:
{等級:'emeraldhillzone'}
然后,您可以使用參數重定向到其他頁面。
一旦我克服了所有分散注意力的錯誤信息,這實際上非常簡單。 關鍵是要搜索“深層鏈接”(而不是“ url參數”),從而得出了這個答案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.