我想單件的信息(使用查詢字符串)傳遞給我的Facebook頁面標籤的應用程序信息傳遞到頁面標籤的應用程序在Facebook中。如何從查詢字符串只用使用Javascript/jQuery的
例如,如果在這個網址的用戶點擊:
- http://apps.facebook.com/myappname/?app_data=mydata
我希望能在該應用訪問「MYDATA」。
從我讀過的書中,Facebook不允許GET
請求,但可以使用app_data
和signed_request
這樣做。但是,我還沒有找到任何有關如何使用JavaScript SDK(甚至有可能?)和.NET(理想情況下,我可以用JavaScript實現這個)的信息。我不知道如何使用signed_request設置和讀取數據,並且有關signed_requests的文檔讓我感到困惑的不僅僅是幫助。我真的很喜歡關於如何實現這個功能的簡單說明。
編輯:
我想我已經差點想通了。如果其他人正在尋找這個答案,我把我在下面做了什麼。另外,如果你看到有任何改進的餘地,請告訴我。我不認爲這是完美的任何手段,但它的作品。
首先,URL需要在頁面選項卡上的網址,而不是直接鏈接到應用程序(如我上面貼): - http://www.facebook.com/pages/PageName/########?sk=app_#########&app_data=mydata
這裏是爲我工作的JavaScript代碼:
//get value of signed request and split it
var signedRequest = $('#mainContent_hfSigned').val().split(".");
//decode json (this does not work on ie - needs to be replaced)
var decodedJson = window.atob(signedRequest[1]);
//parse json to gain access to parameters
var jsonParams = jQuery.parseJSON(decodedJson);
//append the app_data varible to ensure it's being read properly
$('.message').append('Your app_data param is "' + jsonParams.app_data + '"')
上的jsfiddle: http://jsfiddle.net/C3xsm/1/
有一件事我知道我仍然需要做的是用base64url解碼器的JavaScript取代ATOB。我在考慮使用這一個:
http://code.google.com/p/stringencoders/source/browse/trunk/javascript/base64.js
如果它工作得很好,我會在這裏更新。或者如果有人知道更好的方法,請告訴我。
你在正確的軌道上。我的建議是做更多的研究。這裏有很多代碼示例... – 2012-07-30 22:57:51