【问题标题】:Twitter API - upload an imageTwitter API - 上传图片
【发布时间】:2015-11-05 18:11:17
【问题描述】:

我尝试通过 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>

此外,我还有一个 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.');
                    }
                });
            });

在 Chrome 的网络下,我看到这个请求是 Content-Type:multipart/form-data

最后我得到“响应 200”,但它没有将图像上传到 Twitter 帐户,

我在这里做错了什么?

【问题讨论】:

  • 来自POST media/uploadEnsure your POST is a multipart/form-data request。是你做的吗? (我没用过twitter的api,不过好像可能是这样)
  • 检查发现-Content-Type:multipart/form-data
  • 您为什么不使用当前的 API 挂钩而不是已弃用的挂钩?此端点已被弃用。请使用 POST statuses/update 上传一个或多个媒体实体。

标签: javascript ajax api twitter tweets


【解决方案1】:

我无法将此作为评论发布,因此我将冒着生命危险将其写为答案:P。

我尝试了Exploring the Twitter API(在 Firefox 上有效,在 Chrome 中加载时失败)。

设置测试的步骤

  • 服务:选择https://api.twitter.com/1.1,会显示一些选项。在端点列表中选择您正在使用的端点。
  • 身份验证:OAuth(如果您害怕使用自己的帐户,请尝试使用假帐户,我已经创建了一个假帐户来测试这一点。我尝试使用No authBasic Auth,但没有一个工作)
  • Request URL : POST,自动设置url。
  • 查询标签status - 推文消息。
  • 正文标签:向下滚动并查找media,选择一张图片。

最后按send

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

请注意,状态会附加到 URL。

所以有几个问题:

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

这是我创建的fake account 的结果。

我希望它至少能给你一个暗示。

【讨论】:

  • 如果我想通过图像 url 发送图像-media- 怎么办?
  • 你有这方面的示例 javascript 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-19
  • 1970-01-01
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-07
相关资源
最近更新 更多