簡體   English   中英

從我的應用程序訪問Facebook畫布URL參數

[英]Access facebook canvas URL parameters from my app

我正在制作一個Facebook canvas應用(一個游戲),我希望我的玩家使用帶有url參數的鏈接,這些鏈接鏈接到游戲中的不同區域,即

https://apps.facebook.com/mgatlandtestapp?level=emeraldhillzone

如何在我的應用程序中訪問level = emeraldhillzone信息(客戶端在iFrame中使用javascript,或者在服務器端作為node.js應用程序)


到目前為止我嘗試過的事情:

  1. 這個已有4年歷史的答案指出,可以在客戶端代碼中進行操作,但沒有說明如何操作(對不起,如果我缺少明顯的內容!window.location提供了我的heroku服務器的位置,而不是facebook的URL。)

  2. 一些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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM