new developer desarrollador cuenta consumerkey app twitter oauth oauth-2.0 twitter-oauth

developer - twitter token



Usando twitter para obtener token portador (2)

En el pasado he usado TweetSharp que usa la API 1.1 de Twitter. Probablemente sería mejor usar eso para sus llamadas a Twitter.

TweetSharp Github: https://github.com/danielcrenna/tweetsharp

Si necesita un ejemplo o lo que necesita, hágamelo saber.

Estoy usando el siguiente código para devolver el token de portador, pero sigo recibiendo

"El servidor remoto devolvió un error: (500) error interno del servidor" en línea "respuesta WebResponse = request.GetResponse ();"

WebRequest request = WebRequest.Create("https://api.twitter.com/oauth2/token"); string consumerKey = "31111111111111111111"; string consumerSecret = "1111111111111111111111A"; string consumerKeyAndSecret = String.Format("{0}:{1}", consumerKey, consumerSecret); request.Method = "POST"; request.Headers.Add("Authorization", String.Format("Basic {0}", Convert.ToBase64String(Encoding.Unicode.GetBytes(consumerKeyAndSecret)))); request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"; string postData = "grant_type=client_credentials"; byte[] byteArray = Encoding.UTF8.GetBytes(postData); request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); WebResponse response = request.GetResponse();

Cualquier consejo sería increíble


Encontré la solución después de perder muchas horas. Este error aumentará debido a la codificación base64 que usa Unicode. Simplemente cambie el UNICODE a UTF8, y nada más.

Código final:

WebRequest request = WebRequest.Create("https://api.twitter.com/oauth2/token"); string consumerKey = "31111111111111111111"; string consumerSecret = "1111111111111111111111A"; string consumerKeyAndSecret = String.Format("{0}:{1}", consumerKey, consumerSecret); request.Method = "POST"; request.Headers.Add("Authorization", String.Format("Basic {0}", Convert.ToBase64String(Encoding.UTF8.GetBytes(consumerKeyAndSecret)))); request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"; string postData = "grant_type=client_credentials"; byte[] byteArray = Encoding.UTF8.GetBytes(postData); request.ContentLength = byteArray.Length; Stream dataStream = request.GetRequestStream(); dataStream.Write(byteArray, 0, byteArray.Length); dataStream.Close(); WebResponse response = request.GetResponse();