RestSharp,Twitter。 update_with_media无法授权

时间:2014-08-06 08:45:16

标签: c# twitter restsharp

尝试使用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 感谢

更新:所有身份验证参数都从oauth_开始,按字母顺序排列,令牌,令牌密钥,应用密钥和应用密钥保密,没有媒体的更新状态完美无缺。

更新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);

1 个答案:

答案 0 :(得分:2)

这实际上是restsharp 104.4(编写时Nuget中的版本)的问题

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

问题在于OAuth1Authenticator,它 忽略非oauth POST或GET参数,因此上面的身份验证错误,以及为什么URL段参数&#34 ;工作"

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

对于有兴趣的人,所涉及的签到仅在发布后一个月左右进行,并且可以找到here

相关问题