2011-07-03 38 views
0

後,我與Facebook我得到這個網址進行驗證:如何解析這個URL,並獲得訪問令牌解析Facebook的login_success URL

 
http://www.facebook.com/connect/login_success.html 
#access_token=161713100507627|2.R8bXAgr9wdiQYWJgVx_yPg__.3600.1301475600-100001169602345|sY- 
fl-62kCSgcn1pgiv2fYsltHE 
&expires_in=5996 

我試過request["access_token"]但它不工作:我無法得到任何東西后#

是genrate網址

string[] extendedPermissions = new[] { "publish_stream", "offline_access" }; 

     var oauth = new FacebookOAuthClient { AppId = current.AppId, RedirectUri = urlli }; 


     appId = current.AppId; 
     var parameters = new Dictionary<string, object> 
        { 
         { "response_type", "token" }, 
         { "display", "popup" } 

        }; 




     if (extendedPermissions != null && extendedPermissions.Length > 0) 
     { 
      var scope = new StringBuilder(); 
      scope.Append(string.Join(",", extendedPermissions)); 
      parameters["scope"] = scope.ToString(); 
     } 

     var loginUrl = oauth.GetLoginUrl(parameters); 
+0

你能告訴我們給你這個URL的代碼嗎? – dtb

+0

我添加了代碼生成URL – avnic

+0

哪個平臺? Silverlight的? WP7? Windows窗體?網?它可以幫助我找出你能在哪裏找到答案。 – DevTheo

回答

0

好的代碼,我想我有足夠的信息,以便能夠在一定程度上回答你。我猜你正在瀏覽器中使用Silverlight(因爲這是我知道的唯一返回的平臺)。

你需要做的是在安裝Silverlight的瀏覽器應用程序的同一網站上設置一個頁面(你沒有選擇你必須這樣做)。原因是你不會在哈希標籤後收到任何通知。本質上,頁面所做的是向Silverlight應用程序傳遞一個ScriptNotify以傳遞JavaScript中的完整URL(它將包含標籤內容 - 「#access_token = ...」內容)。

您還需要在您的Facebook應用程序中設置(我認爲您也可以在代碼中的設置中通過您的電話進行此操作)以指向此頁面。在你的Silverlight中,你只需要處理「ScriptNotify」事件。請參閱here for the sample web pagehere for the sample Silverlight code

還有一件事,如果我正確地猜出(並解決了)你的問題,請將我標記爲答案。

0

我點擊http://facebooksdk.codeplex.com/discussions/261528與我的WPF應用程序 - 這也可能適用於Silverlight。這是Facebook行爲的變化與WPF(和Silverlight?)WebBrowser控件的問題之間的交互。我能夠通過切換到WinForms解決我的問題。該鏈接討論了一種與WPF保持一致的替代方法,但添加了對FacebookOAuthClient.ExchangeCodeForAccessToken()的調用。