- チャンネルのメッセージを取得
- スレッド内のメッセージを取得
- メッセージ送信
- メッセージ送信(スレッドにつなげる場合)
- メッセージ送信(メンションやコードブロックなど凝った文章の場合)
- メッセージ削除
- ファイル送信
まとめ
チャンネルのメッセージを取得
https://api.slack.com/methods/conversations.history
curl -X GET -H "Authorization: Bearer ${TOKEN}" \ https://slack.com/api/conversations.history?channel=${CHANNEL}
ただしスレッド内のメッセージは取得できない。スレッド内のメッセージを取得したい場合は次のconversations.replies
を利用する。
スレッド内のメッセージを取得
https://api.slack.com/methods/conversations.replies
curl -X GET -H "Authorization: Bearer ${TOKEN}" \ "https://slack.com/api/conversations.replies?ts=${ts}&channel=${CHANNEL}"
ts
は該当スレッドの「リンクをコピー」し、末尾から6桁目にコンマを打った数字。
例: https://yourcompany.slack.com/archives/C02QYEXA8SW/p1655885927900929
の場合、1655885927.900929
がts
となる。
メッセージ送信
https://api.slack.com/methods/chat.postMessage
curl -X POST -H "Authorization: Bearer ${TOKEN}" \ -F channel=${CHANNEL} -F text="Hello World" \ https://slack.com/api/chat.postMessage
メッセージ送信(スレッドにつなげる場合)
curl -X POST -H "Authorization: Bearer ${TOKEN}" \ -F channel=${CHANNEL} -F text="Hello World" -F thread_ts="$ts" \ https://slack.com/api/chat.postMessage
メッセージ送信(メンションやコードブロックなど凝った文章の場合)
blocks=$(cat <<EOS Hello :smile: \`\`\` this is code blocks \`\`\` EOS ) curl -X POST -H "Authorization: Bearer ${TOKEN}" \ -F channel=${CHANNEL} -F thread_ts="$ts" -F blocks="[{\"type\": \"section\", \"text\": {\"type\": \"mrkdwn\", \"text\": \"$blocks\"}}]" \ https://slack.com/api/chat.postMessage
メッセージ削除
https://api.slack.com/methods/chat.delete
curl -X POST -H "Authorization: Bearer ${TOKEN}" \ -F channel=${CHANNEL} -F ts=${ts} \ https://slack.com/api/chat.delete
ファイル送信
https://api.slack.com/methods/files.upload
curl -X POST -H "Authorization: Bearer ${TOKEN}" \ -F channels=${CHANNEL} -F file=@hoge.png -F thread_ts="${ts}" \ https://slack.com/api/files.upload