質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Q&A

解決済

1回答

3202閲覧

Node.jsでcsvファイルをpostするslackbotの作成がしたい

mo3710

総合スコア5

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

0グッド

0クリップ

投稿2018/03/02 04:28

前提・実現したいこと

Node.jsを使用してslackのbotを作成したいのですが、普通のテキストメッセージではなく、csvファイルが送れるようにしたいです。

通常であれば下記js内のpayloadの中に投稿したいテキスト文を入れると思うのですが、テキストではなくcsvファイルを送りたいです。

該当のソースコード

javascript

1 2//データをcsvファイルにする処理 3var fs = require('fs'); 4var formatCSV = ''; 5var newArr = Arr; 6 7exportCSV(newArr); 8 9function exportCSV(content){ 10 for (var i = 0; i < content.length; i++) { 11 var value = content[i]; 12 var result = '"' + value + '"'; 13 if (j > 0) 14 formatCSV += result; 15 formatCSV += '\n'; 16 } 17 18 fs.writeFile('formList.csv', formatCSV, 'utf8', function (err) { 19 if (err) { 20 console.log('保存できません'); 21 } else { 22 console.log('保存できました'); 23 } 24 }); 25} 26 27//ここからslackbotにポスト 28var request = require('request'); 29 30var options = { 31 url: 'https://hooks.slack.com/services/XXXXXXXXXXXX'(webhookURL), 32 form: 'payload={"username": "webhookbot"}', 33 json :true 34}; 35 36request.post(options, function(error, response, body){ 37 if (!error && response.statusCode == 200) { 38 console.log(body.name); 39 } else { 40 console.log('error: '+ response.statusCode + body); 41 } 42 });

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Slackの"Attaching content and links to messages"ページに記載されておりますが、メッセージフォーマット内にはファイル用のフィールドが存在しないため、単純にサーバ上のファイルを読み込んで送ることは出来ない仕様になっています。

https://api.slack.com/docs/message-attachments

ただ、Slack上ファイルを共有するためのAPIが公開されておりますので

https://api.slack.com/methods/files.upload

このAPIにファイルをアップロードし、共有用のリンクがレスポンスとして取得できますので、得られたURLを単純にメッセージに記載するか、"Unfurling links in messages"のページに記載されたメッセージフォーマットに合わせて送信すれば共有出来るかと思います。

https://api.slack.com/docs/message-link-unfurling

投稿2018/03/08 08:52

iarik

総合スコア101

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mo3710

2018/03/09 00:52

なるほど、ファイルの共有はSlackAPIを使用する必要があるのですね。 こちらでやってみます!ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問