これは簡単な質問かもしれませんが、うまくいきません。
Slack Python Apiを使用してチャネル内のユーザーに言及し、ここでドキュメントを参照しています https://api.slack.com/methods/chat。 postMessage 、そして私のコードは次のように簡単です、
from slackclient import SlackClient
sc = SlackClient(token)
message = sc.api_call(
'chat.postMessage',
channel='#channelname',
text='This is a test.'
)
これにより、チャネルにメッセージが送信されますが、ユーザーに言及するオプションが見つかりません。そして、私は@someone
などのメッセージ内
text='@someone This is a test.'
メッセージはプレーンテキストで投稿されますが、実際に誰かに言及しています。ところで、私はテストトークンを使用しています(または、この機能は承認されたトークンでのみ使用できますか?)
これを行うためのオプションや方法はありますか?
前もって感謝します。
少し探検した後、私は非常に簡単な解決策を得ました。私はそれを見逃すことができる方法がわかりません。
message = sc.api_call(
'chat.postMessage',
link_names=1,
channel='#channelname',
text='@someone This is a test.'
)
オプションlink_names=1
を使用して、テキストメッセージでチャンネルまたはユーザー名を自動的にリンクします。これでうまくいきます。
みんなありがとう。
SlackがAPIを更新したため、このメソッドが機能しなくなったため、更新された回答を投稿します。ここで、users.list
を使用してユーザーのIDを検出するか、Slackアプリのプロファイルでそれを検索する必要があります。
次に、与えられたserIDについて、次のようにテキストを設定することでそれらに言及します:<@ serID>。 link_names
引数は今では無関係です。したがって、これは今使用するコードになります。
message = sc.api_call(
'chat.postMessage',
channel='#channelname',
text='<@userID> This is a test.'
)
ただし、ユーザーグループに言及したい場合は、古いメソッドが引き続き適用されます-それらに@メンションし、その場合はdo set link_names
をtrueに設定します。