Twitter更新 - 媒体状态

时间:2014-08-12 09:56:26

标签: javascript node.js twitter multipartform-data

我要求使用媒体更新Twitter状态。我正在使用以下Twitter API。 https://dev.twitter.com/docs/api/1.1/post/statuses/update_with_media

使用nodejs twit library" https://github.com/ttezel/twit "

twit = new Twit({
                consumer_key:         TWITTER_OAUTH_KEY
              , consumer_secret:      TWITTER_OAUTH_SECRET
              , access_token:         'access token'
              , access_token_secret:  'secret'
            });
wallpost = {};
wallpost.status = 'media upload1 deliverdfd\nhttp://www.animalplanet.com/';
wallpost.media =  [{
                "media_url": "http:\/\/pbs.twimg.com\/media\/A7EiDWcCYAAZT1D.jpg",
                "media_url_https": "https:\/\/pbs.twimg.com\/media\/A7EiDWcCYAAZT1D.jpg",
                "url": "http:\/\/t.co\/bAJE6Vom",
                "display_url": "pic.twitter.com\/bAJE6Vom",
                "expanded_url": "http:\/\/twitter.com\/BarackObama\/status\/266031293945503744\/photo\/1",
                "type": "photo",

            }];

我的帖子请求

twit.post( "update_with_media", wallpost,  function(err, res2) {
                if (err) {
                    return next(err);
                }
                console.info(res2);
                // returns the post id
                res.json({
                  status: 200,
                  info: "OK",
                  id: res2.id
                });
            });

收到错误消息 [{"代码":195,"消息":"缺少或无效的网址参数"}]} 。 我用谷歌搜索它发现了一些线程,其中一些提到有关设置内容类型的多种形式数据。但我不知道如何设置内容类型。

我试过了

 var multipart = [{
                "Content-Type": "multipart/form-data"

            }];
wallpost.content_type = multipart;

不适合我。请帮我解决这个问题。谢谢

1 个答案:

答案 0 :(得分:1)

从您链接的文档

  

支持的图像格式为PNG,JPG和GIF,包括最高3MB的动画GIF。此数据必须是原始图像字节或编码为base64。

您只能将图片 - 而非链接上传到图片。在本地保存图像并将其作为base64编码的字符串添加到media

无法发送链接 - 甚至是Twitter图片。