はじめに
こんにちは、シルです。
今回はAPIメソッドを使用して、投稿済のメッセージを編集します。
メッセージの編集について
こちらの機能をどういった場合で使用するか簡単にまとめます。
- すでに投稿している投稿の誤った情報を修正したり、最新の情報に更新する場合に使用。
- メッセージの書式やリンクを修正する場合に便利。
- 追加情報や注釈を追記する場合にも利用可能。
chat.updateについて
今回は、「chat.update」メソッドを利用します。
Slack公式の解説ページの内容を簡単にまとめます。
エンドポイント
- POST https://slack.com/api/chat.update
スコープ
- Bot User OAuth Tokens:chat:write
- User OAuth Tokens :chat:write, chat:write:bot, chat:write:user
⇨今回はUser OAuth Tokensを利用
Content types
application/x-www-form-urlencodedapplication/json
Rate Limites
| Feature/API | Limit | Notes |
|---|---|---|
| Web API Tier 3 | 50+ per minute | Tier 3 methods allow a larger number of requests and are typically attached to methods with paginating collections of conversations or users. Sporadic bursts are welcome. |
Limit(制限)について
Web API Tier 3に該当します。
1分間に50以上のリクエスト制限があります。この制限を超えるリクエストを送信すると、SlackのAPIはエラーを返します。
Notes(注意事項)について
Tier 3 メソッドは、他のTierよりも多くのAPIリクエストを処理できる能力があります。
これにより、アプリケーションがより多くのデータを迅速に取得することができます。
投稿を編集する
事前準備
詳細なアプリの作成手順は、「Slack | Web APIを使用してメッセージを投稿する」を参照して下さい。
① https://api.slack.com/apps/にアクセスし、アプリを選択します。
まずは、アプリにScopeを追加します。
以下のように「chat:write」が追加されていればOK

② 投稿したいチャンネルにアプリを追加しておきます。

投稿を編集する
JavaScriptで実行します。
① Node.jsでAxiosを使用する方法で紹介します。
「npm install axios」でパッケージをインストールし、実行コマンド「node xxxx.js」を実行します。
・「channelId」には、投稿したいチャンネルのチャンネルIDを入力してください。
・「messageTimestamp」には、事前準備-⑤で取得した、編集したい投稿のタイムスタンプを指定してください。
・「slackToken」には、Bot User OAuth Tokenを入力してください。
・「reaction」には、追加したいリアクションの名前を入れてください。
const axios = require("axios");
// Slack OAuth Token(
const token = "your-slack-token-here";
// 編集したいメッセージのチャンネルIDとタイムスタンプ
const channelId = "CXXXXXXXXXX"; // 例: 'C1234567890'
const timestamp = "1234567890.123456"; // 例: '1234567890.123456'
// 新しいメッセージテキスト
const newMessageText = "編集後のテキスト";
const updateMessage = async () => {
try {
const params = {
channel: channelId,
ts: timestamp,
text: newMessageText,
};
const response = await axios.post(
"https://slack.com/api/chat.update",
params,
{
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
},
}
);
if (response.data.ok) {
console.log("メッセージの編集に成功しました:", response.data);
} else {
console.error("メッセージの編集に失敗しました:", response.data.error);
}
} catch (error) {
console.error("APIリクエストに失敗しました:", error);
}
};
updateMessage();
② 投稿を編集することができました。




コメント