を使用。現時点では、APIを使用してテキストファイルをアップロードすることはできますが、画像をアップロードする方法を理解することはできません。
私の問題は次のとおりです。私は自分の開発サーバー上に画像を持っています。それをimage.pngと呼んでください。私はfiles.upload()APIを使用してその画像を#general Slackチャンネルに投稿したいと思います。
var myBarChart = new Chart(ctx).Bar(barChartData, barChartOptions);
var myBarChartDataURL = leaderboardBarChart.toBase64Image();
canvas.toBuffer(function(err, buf) {
if (err) throw err;
fs.writeFile(__dirname + "/leaderboard.png", buf);
});
bot.api.files.upload({
token: process.env.token,
title: "Image",
filename: "image.png",
filetype: "auto",
//content: "Posted with files.upload API",
file: fs.createReadStream("path/to/image_file.png"),
channels: filtered[0].id
}, function(err, response) {
if (err) {
console.log("Error (files.upload) " + err);
} else {
console.log("Success (files.upload) " + response);
};
});
私は、私は次のエラーのいずれかを取得コードを実行すると::
「invalid_array_arg」とスラック以下は、私はそれが成功した画像を生成しているが、現在はテキストだけを送信して持っているコードがあります詳細: "このメソッドには、PHPスタイルの配列引数(foo [7]などの名前)が渡されました。これらはスラックAPIでは有効ではありません。
私はPHPを使用していないため、このエラーの原因を完全には分かりません。
私は、 'fs'モジュールを使用するか、変数に格納するか、または絶対パス(および相対パス)を参照するかを問わず、ファイルパスを含めるためのいくつかの異なるアプローチを試しました。私は少し失われて、ちょうどいくつかの指導を探しています。
この特定のAPIはmultipart/form-dataを使用していますが、フォームはありません。このアプリは厳密にNodeJSアプリです。メインノードスクリプトと連携して動作するフレームワーク(Expressなど)はありません。
すべてのヘルプは本当に感謝しています。繰り返しますが、私が逃していることや間違っていることについてのいくつかの洞察力/指針を探しています。
ありがとうございます!
「bot.api」は何ですか?私は変数名に基づいて推測していますが、おそらくあなたは[botkit](https://github.com/howdyai/botkit)を使っていますか? – smarx
実際にボットキットの場合は、 'file:fs.createReadStream(" path/to/image/file ")がこのトリックを行うかもしれないと思います。 (Botkitは[form-data](https://github.com/form- data/form-data)を介して 'multipart/form-data'を扱う[request](https://github.com/request/request)データ))。 – smarx
私はbotkitを使用しています!私はそれを試してみましょう、提案に感謝! – dannyk