這可能看起來像一個明顯的問題,但我已經看過Facebook開發人員網站上關於畫布應用程序,並在facebook csharp sdk,並沒有找到我的問題的答案。多頁面的網站結構Facebook的帆布應用程序
我使用的是Facebook-c#-sdk v5.4x或其他關於.net 3.5使用webforms。
桌面的畫布應用程序將有多個入口點。
https://apps.facebook.com/my_canvas_app/Default.aspx
https://apps.facebook.com/my_canvas_app/Register.aspx?EventID=12345
https://apps.facebook.com/my_canvas_app/SomeOtherPage.aspx
我的第一個問題是,從Facebook的第一個請求,我收到signed_request
(其中Facebook的C#-sdk需要照顧),我有OAuth令牌,約2小時有效。在嘗試創建oauth請求(查詢圖表等)之前,重新創建此oauth標記並確保其有效的正確方法是什麼?
現在我所有的鏈接(比如說Default.aspx)看起來就像是<a href="https://apps.facebook.com/my_canvas_app/SomeOtherPage.aspx" target="_top">Go to Some Other Page</a>
,它最終做了一次到Facebook的往返旅行,得到了一個新的signed_request
,因此還有一個更新的oauth標記。其次,當通過asp.net向我自己的站點進行常規表單回發時,我確保signed_request
位於表單上,其格式爲<input type="hidden" name="signed_request" value="<%=Request.Form["signed_request"]%>" />
,這對於應用程序來說似乎很好。如果我忽略這個,那麼回發沒有oauth信息,導致事情失敗。這是在canvas應用程序中執行回發的正確方法嗎?從查看csharp-sdk的源代碼可以看出,會話中沒有任何內容存儲在請求之間以保留oauth標記,因此隱藏的輸入和target =「_ top」鏈接對於多個頁面/回發是必需的,上午我在這個演繹中糾正?第三,在開發移動畫布應用(無iframe)時,如果我的第一個假設是正確的,那麼頁面上的所有鏈接仍然必須去https://apps.facebook.com/my_canvas_app/MobilePage.aspx
。
如果有人可以對這些問題進行一些闡述,我將不勝感激。
謝謝!
我期待着做所有沒有javascript的oauth,如果一切可能的話。如果javascript是必需的,那麼爲什麼要有'signed_request'呢?我的理解是'signed_request'是使用javascript lib的替代方案。 – Matthew
如果您正在進行服務器端身份驗證,那麼訪問令牌應在大約60天內有效,而不僅僅是兩個小時(請參閱:https://developers.facebook.com/roadmap/offline-access-removal/) – CBroe