2012-03-19 70 views
1

我想获取Facebook用户的用户ID,我已经有了access_token,并且使用http请求来执行此操作。我简单的问题是:我希望用户的ID,但我的计划只是崩溃...我使用WPF,C#这是我的一点电话:用http请求获取Facebook用户的用户ID C#WPF

var url = string.Format("https://graph.facebook.com/me?access_token=" + token + "&response_type=id"); 

     var req = WebRequest.Create(url); 
     req.Method = "POST"; 
     req.ContentType = "application/x-www-form-urlencoded"; 

     string postData = "'access_token='" + token; 

     byte[] byteArray = Encoding.UTF8.GetBytes(postData); 
     var stream = req.GetRequestStream(); 
     stream.Write(byteArray, 0, byteArray.Length); 
     stream.Close(); 

     WebResponse response = req.GetResponse(); 
     aTextBox.Text = ((HttpWebResponse)response).StatusDescription; 
     stream = response.GetResponseStream(); 
     StreamReader reader = new StreamReader(stream); 

谢谢!

+0

我想你将要使用的TextReader将得到响应流中的文本或使用像RestSharp库来拨打电话,并完成所有的工作,为你。 – 2012-03-19 18:53:14

+0

顺便说一句,请务必在'GET'或'POST'的一个地方保留'access_token'。使用'POST'方法从Graph API检索数据通过'method = get'来表明你需要数据检索而不是更新。 – 2012-03-19 19:02:16

+0

好吧,我会检查,但现在我真正的问题是'WebResponse response = req.GetResponse();'不工作... – castors33 2012-03-19 19:02:58

回答

4

不要使用Web浏览器!您可以使用HttpWebRequest的那种东西:

string url = "https://graph.facebook.com/me?access_token=" + token + "&response_type=id"; 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
Stream receiveStream = response.GetResponseStream(); 
StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8); 

string responseData = readStream.ReadToEnd(); 
+0

这是完美的它解决了我的问题...现在我的http请求工作!!!再次感谢 – castors33 2012-03-19 19:17:08