이제 SlackBot을 만들어 보았습니다 : 대화
이제 다시 SlackBot을 만들어 보았습니다.
이제 SlackBot을 만들어 보았습니다 : Slach Commands
이제 SlackBot을 만들어 보았습니다 : Interactive Components
이번은 대화입니다.
뭔가 신청서를 입력하거나 설문 답변을 알기 쉽습니다.
자세한 내용은 아래를 참조하십시오.
slack api: Interacting with users through dialogs
htps : // 아피. scck. 코 m / ぢ 아 gs
Permission 설정
전회까지를 진행해 주시고 있는 경우는, 특히 추가의 권한 부여는 불필요합니다.
서버측 구현
전에 대화 상자를 표시하는 계기로 SlashCommands를 설정합니다.
(다이얼로그 표시시에는, trigger_id가 필요합니다. SlashCommands로부터의 메세지에는 그것이 포함됩니다)
Features-Slash Commands를 엽니다.
Create New Command 버튼을 눌러 생성합니다.
서버측의 구현입니다.
app.command는 변경, 그렇지 않으면 추가입니다.
controllers\slack_testbot\index.jsapp.command(async (body, web) =>{
if(body.command == '/hi'){
var hour = new Date().getHours();
var greeting = 'こんにちは';
if( 5 <= hour && hour <= 9 )
greeting = 'おはよう';
else if( 18 <= hour && hour < 5 )
greeting = 'こんにちは';
var message = {
text: greeting + '!' + (body.text ? (' ' + body.text + " です。") : '')
};
app.responseMessage(body.response_url, message );
}else if( body.command == '/query'){
var message = {
text: "選択肢を表示します。",
blocks: blocks,
};
app.responseMessage(body.response_url, message );
}else if( body.command == '/dialog'){
options.trigger_id = body.trigger_id;
app.dialogOpen(options);
}
});
app.submission(async (body, web) =>{
var message = {
"text": '回答ありがとうございました。',
};
app.responseMessage(body.response_url, message );
});
app.cancellation(async (body, web) =>{
var message = {
"text": 'キャンセルされました。',
};
app.responseMessage(body.response_url, message );
});
var options = {
dialog: {
callback_id: "dialog1",
title: "試食のアンケート",
submit_label: "送信する",
notify_on_cancel: true,
elements: [{
type: "text",
label: "試食した食べ物",
name: "name",
placeholder: 'food'
},
{
label: "評価",
type: "select",
name: "review",
options: [{
label: "すごく美味しい",
value: "very_good"
},
{
label: "美味しい",
value: "good"
},
{
label: "普通",
value: "normal"
},
{
label: "不味い",
value: "bad"
},
{
label: "すごく不味い",
value: "very_bad"
}
]
},
{
type: "textarea",
label: "その他",
name: "others",
hint: "好きに書いてください",
optional: "true"
}
]
},
trigger_id: ''
};
app.command에서 받은 메시지에 포함된 trigger_id를 사용합니다.
동작 확인
이번에도 Android의 Slack 앱에서 동작 확인했습니다.
/dialog를 입력하면,
대화 상자가 표시되었습니다!
이런 식으로 입력하고 오른쪽 상단 전송을 누르면,
app.submission이 호출되었으며 응답 메시지가 반환되었습니다.
서버 측에서는 app.submission의 콜백 함수에 다음 데이터가 반환되어 있습니다.
"submission": {
"name": "ハンバーグ",
"review": "very_good",
"others": null
},
덧붙여서, 보내지 않고 돌아가면 다음과 같이 app.cancelleation이 호출되고 응답 메시지가 반환됩니다.
이상
Reference
이 문제에 관하여(이제 SlackBot을 만들어 보았습니다 : 대화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/poruruba/items/d0e0852715687ea10bcf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
전에 대화 상자를 표시하는 계기로 SlashCommands를 설정합니다.
(다이얼로그 표시시에는, trigger_id가 필요합니다. SlashCommands로부터의 메세지에는 그것이 포함됩니다)
Features-Slash Commands를 엽니다.
Create New Command 버튼을 눌러 생성합니다.
서버측의 구현입니다.
app.command는 변경, 그렇지 않으면 추가입니다.
controllers\slack_testbot\index.js
app.command(async (body, web) =>{
if(body.command == '/hi'){
var hour = new Date().getHours();
var greeting = 'こんにちは';
if( 5 <= hour && hour <= 9 )
greeting = 'おはよう';
else if( 18 <= hour && hour < 5 )
greeting = 'こんにちは';
var message = {
text: greeting + '!' + (body.text ? (' ' + body.text + " です。") : '')
};
app.responseMessage(body.response_url, message );
}else if( body.command == '/query'){
var message = {
text: "選択肢を表示します。",
blocks: blocks,
};
app.responseMessage(body.response_url, message );
}else if( body.command == '/dialog'){
options.trigger_id = body.trigger_id;
app.dialogOpen(options);
}
});
app.submission(async (body, web) =>{
var message = {
"text": '回答ありがとうございました。',
};
app.responseMessage(body.response_url, message );
});
app.cancellation(async (body, web) =>{
var message = {
"text": 'キャンセルされました。',
};
app.responseMessage(body.response_url, message );
});
var options = {
dialog: {
callback_id: "dialog1",
title: "試食のアンケート",
submit_label: "送信する",
notify_on_cancel: true,
elements: [{
type: "text",
label: "試食した食べ物",
name: "name",
placeholder: 'food'
},
{
label: "評価",
type: "select",
name: "review",
options: [{
label: "すごく美味しい",
value: "very_good"
},
{
label: "美味しい",
value: "good"
},
{
label: "普通",
value: "normal"
},
{
label: "不味い",
value: "bad"
},
{
label: "すごく不味い",
value: "very_bad"
}
]
},
{
type: "textarea",
label: "その他",
name: "others",
hint: "好きに書いてください",
optional: "true"
}
]
},
trigger_id: ''
};
app.command에서 받은 메시지에 포함된 trigger_id를 사용합니다.
동작 확인
이번에도 Android의 Slack 앱에서 동작 확인했습니다.
/dialog를 입력하면,
대화 상자가 표시되었습니다!
이런 식으로 입력하고 오른쪽 상단 전송을 누르면,
app.submission이 호출되었으며 응답 메시지가 반환되었습니다.
서버 측에서는 app.submission의 콜백 함수에 다음 데이터가 반환되어 있습니다.
"submission": {
"name": "ハンバーグ",
"review": "very_good",
"others": null
},
덧붙여서, 보내지 않고 돌아가면 다음과 같이 app.cancelleation이 호출되고 응답 메시지가 반환됩니다.
이상
Reference
이 문제에 관하여(이제 SlackBot을 만들어 보았습니다 : 대화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/poruruba/items/d0e0852715687ea10bcf
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
"submission": {
"name": "ハンバーグ",
"review": "very_good",
"others": null
},
Reference
이 문제에 관하여(이제 SlackBot을 만들어 보았습니다 : 대화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/poruruba/items/d0e0852715687ea10bcf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)