2013-04-14 58 views
2

我試圖登錄Facebook和通過使用這個鏈接retrive令牌: https://www.facebook.com/dialog/oauth?client_id=282892925078054&redirect_uri=https://www.facebook.com/&response_type=tokenHttpWebrequests Facebook登錄和應用程序的請求令牌

我的代碼看起來是這樣,但我得到一個無效鏈接,當我請求上面的鏈接。

  CookieCollection cookies = new CookieCollection(); 
     HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.facebook.com/login.php?login_attempt=1"); 
     request.CookieContainer = new CookieContainer(); 
     request.CookieContainer.Add(cookies); 
     //Get the response from the server and save the cookies from the first request.. 
     HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
     cookies = response.Cookies; 


     string getUrl = "https://www.facebook.com/login.php?login_attempt=1"; 
     string postData = String.Format("email={0}&pass={1}", email, pass); 
     HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create(getUrl); 
     getRequest.CookieContainer = new CookieContainer(); 
     getRequest.CookieContainer.Add(cookies); //recover cookies First request 
     getRequest.Method = WebRequestMethods.Http.Post; 
     getRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2"; 
     getRequest.AllowWriteStreamBuffering = true; 
     getRequest.ProtocolVersion = HttpVersion.Version11; 
     getRequest.AllowAutoRedirect = true; 
     getRequest.ContentType = "application/x-www-form-urlencoded"; 

     byte[] byteArray = Encoding.ASCII.GetBytes(postData); 
     getRequest.ContentLength = byteArray.Length; 
     Stream newStream = getRequest.GetRequestStream(); //open connection 
     newStream.Write(byteArray, 0, byteArray.Length); // Send the data. 

     newStream.Close(); 

     HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse(); 
     cookies = getResponse.Cookies; 
     using (StreamReader sr = new StreamReader(getResponse.GetResponseStream())) 
     { 
      string sourceCode = sr.ReadToEnd(); 
     } 

     //Get the token 
     HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("https://www.facebook.com/dialog/oauth?client_id=282892925078054&redirect_uri=https://www.facebook.com/&response_type=token"); 
     getRequest.CookieContainer = new CookieContainer(); 
     getRequest.CookieContainer.Add(cookies); 
     webRequest.AllowAutoRedirect = false; 
     HttpWebResponse rresponse = (HttpWebResponse)webRequest.GetResponse(); 

     if (rresponse.StatusCode == HttpStatusCode.Redirect) 
     { 
      Console.WriteLine("redirected to: " + rresponse.GetResponseHeader("Location")); 
     } 

請幫幫我。提前致謝。

回答