使用Curl和Windows命令行将照片发布到Twitter



我正在使用Curl通过Windows命令行发布到Twitter API。 我已经生成了 oAuth 标头,可以使用以下内容发布没有照片的推文:

curl -k -X POST "https://api.twitter.com/1.1/statuses/update.json" -d "status=Test" -H "Authorization: OAuth oauth_consumer_key="xxxxxxxxxxxxxxxxxxx", oauth_nonce="xxxxxxxxxxxxxxxxxxxxxxx", oauth_signature="xxxxxxxxxxxxxxxxxxx", oauth_signature_method="HMAC-SHA1", oauth_timestamp="xxxxxxxxxx", oauth_token="xxxxxxxxxxxxxxxxx", oauth_version="1.0""

这适用于发布状态,但我似乎无法弄清楚如何使用statuses/update_with_media端点发布具有状态的照片。 我知道这个端点已折旧,但我想暂时使用它。

我尝试了一些变体:

curl  -k -X POST "https://api.twitter.com/1.1/statuses/update_with_media.json" -F "[media]=@photo.jpg" -F "status=Test" -H "Authorization: OAuth oauth_consumer_key="xxxxxxxxxx", oauth_nonce="xxxxxxxxxxxxxxx", oauth_signature="xxxxxxxxxxxxxxxx", oauth_signature_method="HMAC-SHA1", oauth_timestamp="xxxxxxx", oauth_token="248911615-xxxxxxxxxxx", oauth_version="1.0""

没有运气。 我总是收到一个{"代码":195,"消息":"缺少或无效的url参数."}错误或{"代码":32,"消息":"无法验证您的身份。

我似乎无法找出正确的语法和签名来发布状态和照片。

如果这更容易,我很乐意使用较新的媒体/上传方法,但我也无法让它工作。

我想出了语法和签名,以使较新的媒体/上传端点正常工作:

curl -k -X POST "https://upload.twitter.com/1.1/media/upload.json" -F "media=@file.jpg" -H "Authorization: OAuth oauth_consumer_key=\"xx oauth_version oauth_token oauth_timestamp oauth_signature_method oauth_signature oauth_nonce x

密钥不包括媒体文件作为签名的一部分

最新更新