Node.jsからSlackへのレスポンス際に「あなただけに表示されています」と表示されるのを、どうにかしたい


はじめに

  • Slackのslash commandのリクエストに対して、普通にレスポンスを返すと「あなただけに表示されています」という状態で投稿されます
  • 他の人に投稿した内容が見えるようにする方法を簡単にまとめます。

「あなただけに表示されています」を解消する方法

  • レスポンス内でresponse_type: 'in_channel'を指定します。
  • ちなみに、Slackの公式サイトにも以下のように記載されています。

The response_type parameter in the JSON payload controls this visibility, by default it is set to ephemeral, but you can specify a value of in_channel to post the response into the channel, like this:
{
"response_type": "in_channel",
"text": "It's 80 degrees right now."
}
参考URL : https://api.slack.com/interactivity/slash-commands

デフォルトでは、"response_type": "ephemeral"が設定されていると書いてありますね。

サンプルコード

body内で、response_type: 'in_channel'を指定すればOKです。

Node.js
const requestPromise = require('request-promise');
const options = {
  url: responseURL, // SlackへのレスポンスURL
  headers: {
    'Content-type': 'application/json'
  },
  body: {
    response_type: 'in_channel', // ★ ここで in_channelを指定
    text: response // Slackへのレスポンス内容
  },
  json: true
 };

res = requestPromise.post(options);