MM経由でnews-ieに投稿するplugin(投稿フォームの実装[見た目だけ])
(この記事は作業ログだから,間違いがある可能性が高い)
openInteractiveDialogで投稿フォームを開く.
基本的に次のplugin-demoを参考に実装した.
mattermost-plugin-demo/command_hooks.go at master · mattermost/mattermost-plugin-demo · GitHub
MMのAPIドキュメントに,openInteractiveDialogというmodal windowを開くためのAPIがあるのを発見した.
これを使って投稿フォームをslashコマンドで開けるようにする.
slashコマンド自体はExecuteCommand APIを使って実装した.
フォーム内容の設定は次を参考に, "github.com/mattermost/mattermost-server/v5/model"
パッケージのモデルの形に従ったりplugin-demoの形を参考にしたりして書いた.
スラッシュコマンド打ったらこんな感じのフォームが出現した.
gitlab
次以降やること
フォームからメッセージを受け取って加工できるようにする.
メッセージ(記事の題名,markdown形式の本文)
加工(hugoのmarkdown形式にする)
まずはしっかりフォームに入力してもらったものを受け取れるようにする.
作業中の殴り書き(参考にならないです. 多分.)
MMのmodal window
Interactive Dialogs — Mattermost 5.24 documentation
スラッシュコマンドでトリガーIDを含むHTTPリクエストを統合機能が受け取る必要がある.(プラグインがそれを受け取ることはできる?)
そうしたら,
https://<your-mattermost-url>/api/v4/actions/dialogs/open
にトリガーIDを含むHTTP POSTリクエストを送信することでインタラクティブダイアログを開くことができる.
スラッシュコマンドはこんな感じに書くといいのかも.
modal windowを開くにはどうすれば良いのか.
トリガーIDなしでInteractive dialogを開くことができるようにするみたいな話を見つけたけどどうだろう.
pull request辿ってたら,普通にopenInteractiveDialog
というのが実装されていることに気づいた.
ここに使い方の例が載ってる.
mattermost-plugin-demo/command_hooks.go at master · mattermost/mattermost-plugin-demo · GitHub
やっとコード書けそう.
Modal windowをReact使って実装するつもりだったけど,openInteractiveDialog
を使えばそこまでしなくても良さそう.
すごい巡り巡ってドキュメントまで戻ってきた感(ドキュメントしっかり読めばよかったのかも.でもその過程で色々なものの理解が深まった).