【问题标题】:Sending a tweet with an image attachment from a URL从 URL 发送带有图像附件的推文
【发布时间】:2019-06-21 03:09:43
【问题描述】:

我正在为 Twitter 制作一个 Bot 使用节点的“twit”包,每当它发生变化时,它会从端点发布游戏的新闻,但是我在实际将来自 url 的图像作为 twitter 发送时遇到问题附件。尽管这听起来很简单,但我几乎找不到任何关于如何去做的事情,而且我发现的所有东西都不起作用而且非常复杂。

我尝试使用 request 获取 URL,将其转换为 base64,并使用“media/upload”获取图像的 ID,然后使用该 media_id 发送推文,但是仍然发送不带附件的推文或图片。

        let b64;

        request.get('https://cdn2.unrealengine.com/Fortnite%2Ffortnite-game%2Ftournaments%2FPlaylistTile_BetaTournament2-1024x512-438bf9615e13c058a69075c0e577af779d7e3aa8.png', function (error, response, body) {
            if (!error && response.statusCode == 200) {
                data = response.headers["content-type"] + new Buffer(body).toString('base64');
                b64 = data;
            }
        });

        T.post('media/upload', { media_data: b64 }, uploaded);

        function uploaded(err, data, response) {
            var id = data.media_id_string;
            var tweet = {
                status: `News Update!\n${news.br[0].title}\n${news.br[0].body}`,
                media_ids: [id]
            }
            T.post('statuses/update', tweet, tweeted);
        }

我希望发送一条带有来自 URL 的图像作为附件的推文,而不是仅仅使用推文中的 URL 发送推文。

【问题讨论】:

    标签: javascript node.js twitter bots twitter-oauth


    【解决方案1】:

    节点是异步的。这意味着这部分:

    T.post('media/upload', { media_data: b64 }, uploaded);
    
    function uploaded(err, data, response) {
        var id = data.media_id_string;
        var tweet = {
            status: `News Update!\n${news.br[0].title}\n${news.br[0].body}`,
                media_ids: [id]
            }
        T.post('statuses/update', tweet, tweeted);
    }
    

    将立即执行,无需等待获取实际图片的请求。

    【讨论】:

      猜你喜欢
      • 2013-12-05
      • 2018-08-04
      • 2013-12-14
      • 2018-12-23
      • 1970-01-01
      • 2017-07-31
      • 2017-12-31
      • 2018-03-09
      • 1970-01-01
      相关资源
      最近更新 更多