ThreadBroadcastMessageEvent is missing `bot_id`
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 78/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- node.js, typescript
- 領域
- api
調査の方向性
issue は packages/types/src/events/message.ts、具体的には276〜300行あたりの ThreadBroadcastMessageEvent の定義を指しています。その型を GenericMessageEvent とあわせて読み、関連する型テストがあるか確認してください。bot_id?: string がブロードキャストイベントに表現され、型が event.bot_id へのアクセスを受け入れれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Package
@slack/types
SDK Version
@slack/[email protected]
Node.js Version
N/A (type definition issue)
Operating System
No response
Steps to Reproduce
- Set up an app subscribed to the
message.channelsevent. - Start a thread as a user in a channel where the app is a member.
- As the bot, reply in that thread with
chat.postMessage({ channel, thread_ts, text, reply_broadcast: true }). - Inspect the payload of the
messageevent the app receives for that reply.
In TypeScript, the following code does not compile:
import type { ThreadBroadcastMessageEvent } from "@slack/types";
function isFromBot(event: ThreadBroadcastMessageEvent) {
return !!event.bot_id; // error TS2339: Property 'bot_id' does not exist on type 'ThreadBroadcastMessageEvent'
}
Expected Result
ThreadBroadcastMessageEvent defines bot_id?: string, like GenericMessageEvent does. Slack sends this field, so we can check whether the broadcast reply itself was posted by a bot without a type assertion.
Actual Result
Slack sends a message event with subtype: "thread_broadcast". The event includes a top-level bot_id:
{
"type": "message",
"subtype": "thread_broadcast",
"user": "U0XXXXXXX",
"bot_id": "B0XXXXXXX",
"app_id": "A0XXXXXXX",
"text": "broadcast test",
"ts": "1791786680.944589",
"thread_ts": "1791786656.190749",
"channel": "C0XXXXXXX",
"channel_type": "channel",
"event_ts": "1791786680.944589",
"root": { "user": "U0YYYYYYY", "ts": "1791786656.190749", "reply_count": 2, ... },
"blocks": [ ... ]
}
However, ThreadBroadcastMessageEvent does not define bot_id, even after #2763:
The only bot_id reachable from this type is root.bot_id, which describes the thread parent, not the broadcast reply. Code that uses root.bot_id to detect bot messages gets both cases wrong: a user's broadcast in a bot-started thread looks like a bot message, and a bot's broadcast in a user-started thread looks like a user message.
This is a follow-up to #2762, which covered other missing fields on the same type.
- 主要言語
- TypeScript
- スター
- 3.4k
- フォーク
- 687
- 平均マージ
- 1日 2時間
- マージ済み PR(30日)
- 14
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
slackapi/node-slack-sdk のほかの issue
-
SocketModeClient crashes on Events API payloads without an inner event対応中かも @kyungyeon-byun-imweb-me が 12 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
slackapi/node-slack-sdk#2753 ·
メンテナーはふだん 1 日以内に返信
-
Support assistant.search.* APIs対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープンauto-triage-skip enhancement pkg:web-api
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
slackapi/node-slack-sdk#2607 · コメント 2 件 · リアクション 2 件 ·
メンテナーはふだん 1 日以内に返信
-
`SlackListsItem FieldMessage.message` type does not match API response shape対応中かも @AjTheSpidey が 150 日前に担当しました。 オープンarea:typescript auto-triage-skip bug pkg:web-api
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
slackapi/node-slack-sdk#2598 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
Missing TypeScript response type for files.uploadV2再び着手できるかも @Jaypatil588 が 129 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンarea:typescript auto-triage-skip bug pkg:web-api
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
slackapi/node-slack-sdk#2459 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
untriaged
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
slackapi/node-slack-sdk#2752 ·
メンテナーはふだん 1 日以内に返信
slackapi/node-slack-sdk の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
-
area:cowork area:desktop documentation enhancement platform:macos
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
anthropics/claude-code#101720 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
apache/rocketmq-dashboard#6610 ·
メンテナーはふだん 3 日以内に返信
-
Add: MS NOWオープンcheck:passed streams:add
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
メンテナーはふだん 1 日以内に返信
-
Global update drops overrideAccess, so Local API updateGlobal fails filterOptions validation (3.90 regression)対応中かも @PINYOPATTANAWASANPORN が今日担当しました。 オープンarea: core Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
payloadcms/payload#18674 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信