qt - 尝试上传图片时 Twitter api 错误 "code 32 Could not authenticate you"

标签 qt authentication twitter oauth twitter-oauth

我正在尝试从我的应用程序将照片上传到 Twitter,我正在使用 https://github.com/pipacs/o2 OAuth 库。

以下是我使用的代码:

QFile file(imgPath);
if (!file.open(QIODevice::ReadOnly))
    {
        return false;
    }
QByteArray m_buffer = file.readAll();

O1Requestor* requestor = new O1Requestor(d->netMngr, d->o1Twitter, this);
QList<O0RequestParameter> reqParams = QList<O0RequestParameter>();

reqParams << O0RequestParameter(QByteArray("media"), m_buffer);
reqParams << O0RequestParameter(QByteArray("media_type"), QByteArray("image/jpeg"));

QByteArray postData = O1::createQueryParameters(reqParams);

QUrl url = QUrl("https://upload.twitter.com/1.1/media/upload.json");
QNetworkRequest request(url);

request.setHeader(QNetworkRequest::ContentTypeHeader, O2_MIME_TYPE_XFORM);
QNetworkReply *reply = requestor->post(request, reqParams, postData);

结果如下:

ERROR: "Host requires authentication" Content: "{"errors":[{"code":32,"message":"Could not authenticate you."}]}"

我尝试做一些简单的事情,比如发布一条推文说你好,以使用状态/更新端点测试身份验证,并且没有错误。 如果需要,下面也是代码:

QUrl url2 = QUrl("https://api.twitter.com/1.1/statuses/update.json);

reqParams = QList<O0RequestParameter>();
reqParams << O0RequestParameter(QByteArray("status"), "Hello");
postData = O1::createQueryParameters(reqParams);

request.setUrl(url2);
request.setHeader(QNetworkRequest::ContentTypeHeader, O2_MIME_TYPE_XFORM);
QNetworkReply *reply = requestor->post(request, reqParams, postData);

你能帮我解决这个问题吗? 谢谢

最佳答案

类似于this回答,您需要确保 m_buffer 中的图像内容作为 base-64 编码字符串发送。否则,Twitter API 将返回错误 32。

关于qt - 尝试上传图片时 Twitter api 错误 "code 32 Could not authenticate you",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51570152/

相关文章:

c++ - 如何修复我的 Qt 窗口的大小?

iphone - iOS返回即使手机上有一个Twitter帐户也没有电话帐户

c++ - QRegExp 去除换行符和多个空格

c++ - Qt::BackgroundRole 似乎被忽略了

django - 重写 django 中的 UserManager

ios - objective-c - 带有 header 和参数的 HTTP POST 请求句柄

authentication - 如何在 asp.net 5 中设置 Auth cookie

java - 尝试使用 twitter4j 更新状态时出现错误 401

python - 使用python从Twitter的用户名获取用户ID

c++ - 如何在执行 qmlRegisterType 后获得有效的类实例?