【问题标题】:RestSharp, Twitter. update_with_media cannot authorizeRestSharp,推特。 update_with_media 无法授权
【发布时间】:2014-09-29 02:59:19
【问题描述】:

尝试使用 RestSharp 发送附有图片的推文:

  _client = new RestClient("https://api.twitter.com")
        {
            Authenticator = OAuth1Authenticator.ForProtectedResource(Key, Secret, Token, TokenSecret)
        };
RestRequest request = new RestRequest("/1.1/statuses/update_with_media.json", Method.POST);

request.AddFile("media", att.File, att.FileName, "base64");
request.AddParameter("status", postStatus.Text);
var result = await _client.ExecuteTaskAsync(request);

结果是“无法验证您”错误号 - 32 谢谢

UPDATE:所有认证参数从oauth_开始按字母顺序排列,token、token secret、app key和app key secret都正确,无媒体更新状态完美。

更新 2:

解决方案

 var request = new RestRequest("/1.1/statuses/update_with_media.json", Method.POST);
        request.AlwaysMultipartFormData = true;


        request.AddParameter("status", message, ParameterType.UrlSegment);
        request.AddFile("media[]", file, filename, "application/octet-stream");

        var result = _client.Execute(request);

【问题讨论】:

    标签: c# twitter restsharp


    【解决方案1】:

    这实际上是 restsharp 104.4 的问题(截至撰写本文时 Nuget 中的版本)

    我们遇到了同样的问题,但您上面的解决方案对我们不起作用。 UrlSegment 参数在状态更新时失败,虽然它不会在调用 update_with_media 时失败,但它也不会发布状态,只是发布图片。

    问题在于 OAuth1Authenticator,它确实会忽略非 oauth POST 或 GET 参数,因此会出现上述身份验证错误,以及 URL 段参数“有效”的原因.

    要解决此问题,请从 GitHub 获取最新版本的 RestSharp 并改用它。

    对于那些感兴趣的人,所涉及的签入是在发布后一个月左右完成的,可以找到here

    【讨论】:

      猜你喜欢
      • 2013-12-08
      • 2016-11-04
      • 2014-08-11
      • 2013-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-16
      • 1970-01-01
      相关资源
      最近更新 更多