Twitter API - 上传图片

URL*_*L87 12 javascript api twitter ajax tweets

我尝试通过Twitter api上传图片,如我所描述的那样我创建了一个表格name="status"name="media[]"-

<form id="image-form">
    <input type="text" name="status">
    <input name="media[]" type="file" />
    <input type="submit" value="POST IMAGE">
</form>
Run Code Online (Sandbox Code Playgroud)

另外我有一个submit处理程序 -

   $('#image-form').submit( function(e) {
                e.preventDefault();
                var formData = new FormData(this); // <-- 'this' is your form element


        $.ajax({
                    url:'https://api.twitter.com/1.1/statuses/update_with_media.json',
                    type: 'POST',
                    contentType: false,
                    pagerocessData: false,
                    processData: false,
                    data: formData,
                    success: function(data) {
                        alert('Image upload succeeded');
                    },
                    error: function (responseData, textStatus, errorThrown) {
                        alert('GET failed.');
                    }
                });
            });
Run Code Online (Sandbox Code Playgroud)

在Chrome网络下,我看到了此请求 Content-Type:multipart/form-data

最后我得到"回复200",但它没有将图像上传到Twitter帐户,

我在这里做错了什么?

Eri*_*nez 8

我不能将其作为评论发布,所以我冒着生命危险将其写成答案:P.

我尝试了探索Twitter API(在Firefox上运行,在Chrome中加载时失败).

设置测试的步骤

  • 服务:选择https://api.twitter.com/1.1,它会显示一些选项.在端点列表中,选择您正在使用的端点.
  • 身份验证:OAuth(如果您害怕使用自己的手机,请尝试使用虚假帐户,我创建了一个假的帐户来测试此功能.我尝试过No auth,Basic Auth但没有一个工作)
  • 请求URL:POST,自动设置URL.
  • 查询选项卡:status- 推文消息.
  • 正文选项卡:向下滚动并查找media,选择图像.

最后按send.

我可以注意到,如果我没有指定图像或文本,它将失败(显然).如果我设置的图像没有状态,它将上传图像,如果我同时指定两者,那么......它将上传带有文本的图像.

请注意,状态将附加到URL.

所以有几个问题:

  • 你有没有设置OAuth?
  • 您是否至少设置了一个必填字段(状态或媒体)?您是否通过URL传递状态?
  • 当你说它有效,但它没有上传图像时,你是否在Twitter帐户中看到状态?

这是我制作的假账户的结果.

我希望至少它会给你一些暗示它可能是什么.