ステップの実行
ワークフローの利用者によって、アプリが提供するカスタムのワークフローステップが実行されるとき、アプリはworkflow_step_execute
というイベントを受信します。このイベントの受信時に WorkflowStep
設定オブジェクト内の execute
コールバック関数が実行されます。
save
コールバック関数で予め規定された inputs
の情報を使って、ここでの処理は、サードパーティの API を呼び出したり、データベースに情報を保存したり、そのユーザーのホームタブを更新したり、outputs
オブジェクトを構築することで後続のワークフローステップが利用できる情報を設定したりします。
execute
コールバック関数内では、ステップの実行が成功であることを Slack 側に伝える complete()
関数、失敗であることを伝える fail()
関数のいずれかを呼び出す必要があります。
const ws = new WorkflowStep('add_task', {
edit: async ({ ack, step, configure }) => {},
save: async ({ ack, step, update }) => {},
execute: async ({ step, complete, fail }) => {
const { inputs } = step;
const outputs = {
taskName: inputs.taskName.value,
taskDescription: inputs.taskDescription.value,
};
// もし全て OK なら
await complete({ outputs });
// 注意: processBeforeResponse: true を指定している場合
// ここでは await complete() はおすすめしません。呼び出す API の応答が遅いためです。
// これにより、3 秒以内に Slack のイベント API に応答することができなくなる場合があります。
// 代わりに以下のようにすることができます:
// complete({ outputs }).then(() => { console.log('workflow step execution complete registered'); });
// もし何か問題が起きたら
// fail({ error: { message: "Just testing step failure!" } }).then(() => { console.log('workflow step execution failure registered'); });
},
});