2016-06-01 4 views
0

Привет я делаю приложения с графическим интерфейсом, на котором пользователь дает свой идентификатор пользователя и пароль для входа на твиттере. У меня есть следующий код, но он не работает для меня, давая ошибку 403 ForbiddenC#: Ошибка 403 в процессе аутентификации пользователя на твиттер C#

StringBuilder sb = new StringBuilder(); 
      byte[] buf = new byte[8192]; 

      // encoding username/password 
      string user = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(txtId.Text + ":" + txtPassword.Text)); 

      //connect with verify page 

      HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://api.twitter.com/1.1/account/verify_credentials.xml");  
      // HttpWebRequest request =(HttpWebRequest)WebRequest.Create("http://twitter.com/account/verify_credentials.xml");     


      // setting method to GET- This API expects a GET method Call 
      request.Method = "POST"; 

      // setting authorization levels 
      request.Headers.Add("Authorization", "Basic " + user); 

      request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"; 
      //request.ContentType = "application/x-www-form-urlencoded"; 

      // set the response from the GET command 
      HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
      Stream resStream = response.GetResponseStream(); 

      // collect info returned from the GET call 
      string tempStream = null; 
      int count = 0; 

      do 
      { 
       count= resStream.Read(buf, 0, buf.Length); 
       if(count!=0) 
       { 
        tempStream= Encoding.ASCII.GetString(buf,0,count); 
        sb.Append(tempStream); 
       } 
      }while(count>0); 

      //convert result to XML DOC 
      XmlDocument doc = new XmlDocument(); 
      doc.LoadXml(sb.ToString()); 

      // get person name from the newly created xml document 
      XmlNodeList nodeList = doc.SelectNodes("/user/name"); 
      foreach (XmlNode node in nodeList) 
       personName = node.InnerText; 

      label1.Text = "Welcome, " + personName + "!"; 

также прилагается изображение GUI enter image description here нужна помощь, если кто-нибудь знать решение Спасибо

ответ

2

Twitter нет дольше укажите имя пользователя/пароль по умолчанию. Чтобы получить доступ к такой функции, вам придется связаться с ними конфиденциально с очень сильным делом (и компанией), чтобы они разрешили вашему приложению использовать его. В качестве примера последней компанией, авторизованной для доступа к этой аутентификации, был Instagram 2 года назад ...

То, что вы хотите использовать, - это механизм OAuth для выполнения вашего запроса из информации о приложении и пользователе.

Я предлагаю вам использовать библиотеку, которую я разработал для разработчиков Twitter, используя C# (https://github.com/linvi/tweetinvi).

Вы будете в состоянии сделать то, что вы хотите с помощью следующих строк кода:

Auth.SetUserCredentials("CONSUMER_KEY", "CONSUMER_SECRET", "ACCESS_TOKEN", "ACCESS_TOKEN_SECRET"); 

var authenticatedUser = User.GetAuthenticatedUser(); 

label1.Text = "Welcome, " + authenticatedUser.Name + "!"; 
+0

Окей Спасибо за информацию ... пожалуйста, вы можете разработать Как использовать эту библиотеку в моем проекте и откуда Я мог бы получить ** consumer_key, consumer_secret, Access_token и Secret ** ??? –

+0

Спасибо, много. Это сработало для меня очень хорошо. –

+0

Мне нужно больше работать с Twitter API. Мне нужна ваша помощь. Добрый ответ. Если бы вы могли мне помочь. Пожалуйста. Спасибо –

Смежные вопросы