5

インターフェースのようなタスクマネージャーを実装するカスタムslackコマンドを書いています(私は知っています...そこにはたくさんあります:-)、私のマイクロタスクをアウトソーシングするためにodesk/upworkとのインターフェースをマイニングします:-))。

とにかく、コマンドを入力したユーザーとのその後のやり取りを容易にするために、 /remind コマンドの出力に Complete Delete などのリンクが含まれている方法がとても気に入っています。同じトリックを実行する方法を見つけようとしています。

私がこれまでに考えたのは、出力にリンクを含めることです...GET /slack-link?method=POST&token=xxx&team_id=xx&command=.. つまり、通常のカスタム コマンドから slack が生成した完全な json ペイロードをクエリ文字列に含めます。slack-link唯一の役割は、POST を通常の Slack エンドポイントに送信することである「プロキシ」として機能します。これらのコマンド リンクに同じ response_url を再利用することもできます。

試したことはありませんが、これらの URL は別のウィンドウを開くだけなので、パスが正確に機能しないと思います...

誰もそのようなことを試したことがありますか?

4

2 に答える 2

4

ご存じのとおり、これらは現在、組み込みコマンドでのみ使用できます。しかし、興味があり、それらがどのように行われるかを知りたかったので、API を調べたところ、URL は通常どおりにフォーマットされているだけで、特別な「プロトコル」があることがわかりました。

You asked me to remind you to “test”.
​_<slack-action://BSLACKBOT/reminders/complete/D01234567/1234//0/0/5678|Mark as complete>
or remind me later: <slack-action://BSLACKBOT/reminders/snooze/D01234567/1234//0/0/5678/15|15 mins> [...]

このようなリンクをクリックすると、メソッド への API リクエストが生成されchat.action、次のパラメータが使用されます。

bot: BSLACKBOT
payload: reminders/complete/D01234567/1234//0/0/5678
token: xoxs-tokenhere-nowayiampostingithere

したがって、これらの URL には次の 3 つの部分があるようです。

<slack-action://BSLACKBOT/reminders/complete/[...]|Mark as complete>
  1. slack-action://: これがチャット アクション URL であることを Slack に知らせるための「プロトコル」のようなプレフィックス。
  2. BSLACKBOT: (誰が?) ペイロードを受け取るボット。ボット ユーザーのみが可能で、ID は B で始まる必要があります。そうでない場合、API 要求は で失敗しinvalid_botます。
  3. URL の残りの部分: ボットに渡されるペイロード。これは、Slack によって特別に解析または処理されているようには見えません。

これは実際には新しい機能ではありません。2013 年後半または 2014 年前半 (正確には覚えていません) に API URL があり、「セキュリティ上の理由」で削除されていたためです。

カスタム ボットでチャット アクションを使用できるかどうか、また使用できる場合はそれで何ができるかを確認するのは興味深いことです。

于 2015-12-23T22:47:38.490 に答える
3

Slack サポートから回答を得ました。

元の質問に関して: 現在、Slack はカスタム統合に「アクション」リンクを埋め込む機能を提供していません。現時点では、/remind などの組み込み機能のみがこれらを利用できます。外部サービスの場合、外部 Web ブラウザーで開く URL にリンクする必要があります。

将来的にはカスタム統合に同様の機能を提供し、インタラクティブなメッセージを可能にしたいと考えています.

ありがとう、

ベン

于 2015-12-16T04:06:27.697 に答える