You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Twitter API上传媒体返回Code 32认证错误,Postman正常RestSharp失败

Twitter API错误码32(认证失败)问题修复方案

错误码32代表OAuth签名校验未通过,你的代码存在三处导致签名失效、请求格式错误的问题,修复步骤如下:

问题1:手动指定了错误的Content-Type头

multipart/form-data请求必须包含boundary分隔符参数,RestSharp在检测到请求包含文件时会自动生成带正确boundary的Content-Type头,你手动添加的头缺少boundary参数,不仅会导致请求格式错误,还会被算入OAuth签名基底,导致签名不匹配。

  • 修复:直接删除request.AddHeader("Content-Type", "multipart/form-data");这行代码即可。

问题2:查询参数直接拼接在请求路径中

RestSharp的OAuth1Authenticator默认只会把通过AddQueryParameter方法添加的参数计入签名计算,你直接把media_category=tweet_image拼在路径里,签名计算时会漏掉这个参数,导致Twitter侧校验签名失败。

  • 修复:拆分路径和查询参数:
// 原来的写法
// var path = $"media/upload.json?media_category=tweet_image";
// 改为
var path = "media/upload.json";
var request = new RestRequest(path, Method.POST);
// 单独添加查询参数
request.AddQueryParameter("media_category", "tweet_image");

问题3:AddFileBytes参数传位错误

你调用的AddFileBytes重载参数顺序为(参数名, 字节数组, 文件名, 内容类型),你把内容类型填到了文件名的位置,会导致上传的媒体文件content-type错误,也可能触发签名校验失败。

  • 修复:调整参数顺序,补全正确的文件名和内容类型:
// 原来的写法
// request.AddFileBytes("media", imageArray, "image/png");
// 改为,第三个参数为自定义文件名,第四个为内容类型
request.AddFileBytes("media", imageArray, "upload.png", "image/png");

额外校验项

确认_restClientUpload的BaseAddress设置为https://upload.twitter.com/1.1/,Twitter媒体上传接口的域名和普通接口不同,不能填api.twitter.com。

修复后完整代码

public async Task UploadImageAsync()
{
    var imagePath = @"C:\myImagePath.png";
    byte[] imageArray = System.IO.File.ReadAllBytes(imagePath);

    _restClientUpload.Authenticator = OAuth1Authenticator.ForProtectedResource(customer_key, customer_key_secret, access_token, access_token_secret);
    // 拆分路径和查询参数
    var path = "media/upload.json";
    var request = new RestRequest(path, Method.POST);
    request.AddQueryParameter("media_category", "tweet_image");
    // 调整AddFileBytes参数顺序
    request.AddFileBytes("media", imageArray, "upload.png", "image/png");
    var response = await _restClientUpload.ExecuteAsync(request);

    if (!response.IsSuccessful)
    {
        Console.WriteLine(response.StatusDescription);
    }
}

内容的提问来源于stack exchange,提问作者Jean-Pierre-Karim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:09:03