7

次のコードを使用してベアラートークンを返していますが、取得し続けています

「リモート サーバーがエラーを返しました: (500) 内部サーバー エラー」行「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();

どんなアドバイスも素晴らしいでしょう

4

2 に答える 2

10

何時間も無駄にした後、解決策を見つけました。このエラーは、Unicode を使用した base64 エンコーディングが原因で発生します。UNICODE を UTF8 に変更するだけで、他には何もありません。

最終的なコード:

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();
于 2013-06-13T00:47:38.147 に答える
1

以前は Twitter の 1.1 API を使用した TweetSharp を使用していました。ツイッターの通話にはそれを使用したほうがよいでしょう。

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

例や必要なものが必要な場合は、お知らせください。

于 2013-05-22T10:59:49.840 に答える