从slackbot

时间:2019-04-28 02:45:22

标签: node.js base64 slack-api

在代码的这一点上,我有一个img变量,它包含一个以base-64编码的图像。通过登录img并将输出粘贴到美化base-64图像编码器的代码中,我已经确认base-64图像是正确的。

现在,我正在尝试弄清楚如何发布到Slack API。我已经阅读了Slack的files.upload方法API文档,其中说它们接受多部分表单数据或application / x-www-form-urlencoded,但是我不知道如何从Base-64转换为node.js。完成转换后,我也不知道如何使用request.post进行实际的发布,因为我不清楚如何为松弛请求编码相关信息。

当前,我正在尝试以下操作:

        request.post({ url: 'https://slack.com/api/files.upload',
          formData: {
            token: slackToken,
            tile: "Image",
            filename: "image.png",
            filetype: "auto",
            channels: "testing",
            file: img,
          },
        }, function (err, response) {
            // just for debugging
            console.log(JSON.parse(response.body));
        });

得到回应: { ok: false, error: 'no_file_data' },这很有意义,因为Slack不接受img的base-64编码

任何帮助,不胜感激!

1 个答案:

答案 0 :(得分:0)

首先,如果base64编码以qemu: fs.img xv6.img $(QEMU) -serial mon:stdio $(QEMUOPTS) qemu-nox: fs.img xv6.img $(QEMU) -nographic $(QEMUOPTS)

开头,则需要对其进行修剪

现在file system可以帮助我们通过writeFileSync转换为文件,该文件接受文件的base64编码并将文件写入系统。我想找到一种方法来完成此操作,而不会产生向系统中写入文件的副作用,但是还无法实现。

准备就绪后,我们可以使用新创建文件的路径作为data:image/png;base64,参数来进行松弛发布请求。下面的工作代码:

file