【问题标题】:Using twitter to get bearer token使用推特获取不记名令牌
【发布时间】:2013-05-16 13:46:58
【问题描述】:

我正在使用以下代码返回不记名令牌,但我不断收到

“远程服务器返回错误:(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();

任何建议都会很棒

【问题讨论】:

    标签: twitter oauth oauth-2.0 twitter-oauth


    【解决方案1】:

    在浪费了很多小时后,我找到了解决方案。 由于使用 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();
    

    【讨论】:

    • 这帮助我解决了我的问题,虽然我没有使用 C#/.Net。
    【解决方案2】:

    过去我使用过使用 Twitter 1.1 API 的 TweetSharp。你可能会更好地使用它来进行 Twitter 通话。

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

    如果您需要示例或需要什么,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-04
      • 2020-12-28
      • 2021-11-08
      • 2021-07-12
      • 2021-09-28
      • 2020-03-18
      • 2020-10-18
      • 2021-12-14
      相关资源
      最近更新 更多