2011-01-13 21 views

回答

1

根據@ jfar的回答,它看起來好像SDK本身支持應用程序認證。我的解決方案是自己獲取訪問令牌,然後將其應用於SDK。

下面是我用於檢索訪問令牌的粗略控制檯應用程序。

static void Main(string[] args) { 
     var webRequest = (HttpWebRequest)HttpWebRequest.Create("https://graph.facebook.com/oauth/access_token"); 
     webRequest.Method = "POST"; 
     webRequest.ContentType = "application/x-www-form-urlencoded"; 

     var requestString = "grant_type=client_credentials&client_id=***client_secret=***"; 

     byte[] bytedata = Encoding.UTF8.GetBytes(requestString); 
     webRequest.ContentLength = bytedata.Length; 

     var requestStream = webRequest.GetRequestStream(); 
     requestStream.Write(bytedata, 0, bytedata.Length); 
     requestStream.Close(); 

     var response = webRequest.GetResponse(); 
     var responseStream = new StreamReader(response.GetResponseStream()); 
     var responseString = responseStream.ReadToEnd(); 

     responseStream.Close(); 
     response.Close(); 

     if (!String.IsNullOrWhiteSpace(responseString)) { 
      var accessToken = responseString.Replace("access_token=", ""); 
      var fbApp = new FacebookApp(accessToken); 

      long id = ****; 
      dynamic results = fbApp.Query("select name, email, website from user where uid=" + id.ToString()); 
      dynamic user = results[0]; 

      Console.Write(String.Concat(user.name, " ", user.email, " ", user.website)); 
     } 
     else { 

     } 

     Console.ReadLine(); 
    } 

正如您所見,我已使用HttpWebRequest啓動了OAuth身份驗證。響應返回應用程序訪問令牌,然後直接將其傳遞給FacbeookApp構造函數之一,從而使我可以訪問Facebook C#SDK的應用程序。

1

看起來像Facebook的C#SDK不幫你獲得訪問令牌的用戶或應用程序。基於Facebook上的C#SDK此評論:

此SDK不包括 的方法獲得來自用戶的令牌,爲 最好的方法將取決於什麼類型的應用 在使用它。

你自己的很多。

+0

+1謝謝@jfar。我覺得我喜歡在第一個Facebook上做了很多假設,但結果卻是一個雷區。我目前的解決方案是自己獲取訪問令牌,然後將其傳遞到SDK中。 – kim3er 2011-01-13 11:08:12

相關問題