我試圖從V5.3.2遷移到V6的SDK。我有一個ASP.NET 4.0 Canvas應用程序。我注意到,現在有沒有更多的Facebook.Web.dll中(這是我以前使用),並發現了這個信息:從V5遷移到Facebook C#SDK的V6
> 去除Facebook.Web.dll中和Facebook.Web.Mvc的。 dll 從v6開始,我們貶低Facebook.Web.dll和Facebook.Web.Mvc.dll,並將不再提供它。 ... 從v6開始,您將不得不使用Facebook Javascript SDK獲取訪問令牌並使用安全https連接將其傳遞到服務器,或使用Facebook OAuth登錄對話框。 解碼已簽名的請求(ParseSignedRequest/TryParseSignedRequest)已轉移到FacebookClient。
var fb = new FacebookClient();
dynamic signedRequest = fb.ParseSignedRequest("app_secret", Request.Params["signed_request"]);
< < < < (http://blog.prabir.me/post/Facebook-CSharp-SDK-Glimpse-into-the-Future.aspx) 所以,這一切都很好。以前,我在我的代碼有這背後:
protected void Page_Load(object sender, EventArgs e)
{
var auth = new CanvasAuthorizer { Permissions = new[] { "user_about_me" } };
if (auth.Authorize())
{
ShowFacebookContent();
}
}
要改變它,我現在得到的JavaScript SDK成功加載和我的用戶登錄:
<div id="fb-root"></div>
<script type="text/javascript">
FB.init({ appId: 'xxxxxxx', cookie: true, status: true, oauth: true });
FB.getLoginStatus(function (response) {
if (response) {
alert(response.authResponse.accessToken);
}
});
</script>
我測試過這一點,它成功登錄到用戶。但是,如何讓它做回發並調用之前調用的服務器端方法(ShowFacebookContent)?我假設無論我做什麼都必須傳遞accessToken或SignedRequest,以便fb.ParseSignedRequest可以工作,並且在服務器上我們可以生成一個FacebookClient。
我猜測,幾個人會出現類似的情況,試圖從facebook.web.dll遷移,所以任何指導都會非常棒。
謝謝,但在什麼情況下我通過憑據?我可以設想我使用提交按鈕來設置表單來傳遞這些內容,但是我希望在加載頁面時觸發此代碼。 – BenjiFB 2012-02-20 19:43:55
當頁面加載時,你想要做什麼確切的請求? – prabir 2012-02-20 19:56:28
因此,我們假設最簡單的示例:我想使用圖形API來獲取用戶的名字,並將ASP:Label設置爲該值。當然,我可以做這個客戶端,但假設我想做這個服務器端(我可以做V5),並希望在頁面加載時發生。 – BenjiFB 2012-02-20 20:40:29