2012-03-19 15 views
1

FacebookユーザーのuserIDを取得しようとしていますが、すでにaccess_tokenがあり、httpリクエストを使用しています。私の簡単な問題があることである: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); 

ありがとう:私はWPFを使用して...私は、ユーザーのidをしたいが、私のプログラムだけでクラッシュし、ここではC#が私の小さな呼び出しです!

+0

私はあなたが応答ストリームからテキストを取得したり、電話をかけるためにRestSharpのようなライブラリを使用して、あなたのためにこの作業のすべてを行うにしたTextReaderを使用したくなると思います:あなたは、物事のようなもののためにHttpWebRequestを使用することができます。 –

+0

ところで、 'access_token'は' GET'または 'POST'の一つの場所に残しておいてください。 'POST'メソッドを使ってGraph APIからデータを取得すると' method = get'が渡され、データの取得と更新が必要であることを示します。 –

+0

私はそれを確認しますが、今は本当の問題は 'WebResponse response = req.GetResponse();'です。 – castors33

答えて

4

Webブラウザを使用しないでください!

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

関連する問題