Bot Framework Composer에서 봇 개발 : 8 HTTP 요청 사용
15121 단어 ComposerBotFramework
HTTP 요청
Bot Framework Composer에는 HTTP 요청 작업이 있으므로 외부 서비스를 쉽게 호출할 수 있습니다.
이번은 Qiita.com의 API 을 이용하여 정보를 취득해 보겠습니다.
이번에는 특정 사용자의 최근 기사 3건 취하는 URL
htps : // 코 m/아피/v2/우세 rs/:우세 r_이 d/있어 ms? Page = 1 & Per_Page = 3
그리고 다음 형식으로 반환되는 결과를 사용합니다.
[
{
"rendered_body": "...",
"coediting": false,
"comments_count": 0,
"created_at": "2020-03-27T17:34:01+09:00",
"group": null,
"id": "ba22b09ad587fa259e0a",
"likes_count": 0,
"private": false,
"reactions_count": 0,
"tags": [
{
"name": "Composer",
"versions": []
},
{
"name": "BotFramework",
"versions": []
}
],
"title": "Bot Framework Composer でボット開発 : その 7 エンティティの取得",
"updated_at": "2020-03-27T17:34:01+09:00",
"url": "https://qiita.com/kenakamu/items/ba22b09ad587fa259e0a",
"user": {
"description": "",
"facebook_id": "kenichiro.nakamura.5249",
"followees_count": 5,
"followers_count": 193,
"github_login_name": "kenakamu",
"id": "kenakamu",
"items_count": 225,
"linkedin_id": "kenakamu108",
"location": "",
"name": "",
"organization": "Microsoft ",
"permanent_id": 214116,
"profile_image_url": "https://avatars2.githubusercontent.com/u/9940668?v=4",
"team_only": false,
"twitter_screen_name": "kenakamu108",
"website_url": "http://github.com/kenakamu"
},
"page_views_count": null
},
{
...
},
{
...
}
]
lg 함수
이번에는 결과를 회전 목마로 반환합니다. 이 때 lg (Language Generation) 함수를 몇 개 사용합니다.
또 사전에 정의되어 있는 함수가 제공되고 있어 샘플에서도 자주(잘) 사용하기 때문에, 어떤 일을 할 수 있는지 파악해 두면 편리합니다.
GitHub: 미리 정의된 함수
카드를 보내는 방법에 대해서는 공식 문서도 함께 참조하십시오.
기사 취득 대화 상자 추가
이제 Qiita API를 사용하여 기사 검색 대화 상자를 추가해 보겠습니다.
1. 새 대화 상자에서 GetArticles 대화 상자를 추가합니다.
2. "Text Input"액션 추가. Qiita 사용자 이름을 듣습니다.
3. 사용자 입력을 다음과 같이 설정. 유저명은 엔티티에서도 취득할 수 있도록 한다.
4. "Access external resources"에서 "Send an HTTP request"를 선택합니다.
5. Get 메서드를 지정하고 주소에 https://qiita.com/api/v2/users/${dialog.qiitauser}/items?page=1&per_page=3
를 입력합니다.
6. 속성 창 하단의 Result Property 및 Response type을 설정합니다. 이 경우, 결과는 각각 이하의 패스로 액세스 가능. 바로 가기에 대한 자세한 내용은 이전 기사을 참조하십시오.
[
{
"rendered_body": "...",
"coediting": false,
"comments_count": 0,
"created_at": "2020-03-27T17:34:01+09:00",
"group": null,
"id": "ba22b09ad587fa259e0a",
"likes_count": 0,
"private": false,
"reactions_count": 0,
"tags": [
{
"name": "Composer",
"versions": []
},
{
"name": "BotFramework",
"versions": []
}
],
"title": "Bot Framework Composer でボット開発 : その 7 エンティティの取得",
"updated_at": "2020-03-27T17:34:01+09:00",
"url": "https://qiita.com/kenakamu/items/ba22b09ad587fa259e0a",
"user": {
"description": "",
"facebook_id": "kenichiro.nakamura.5249",
"followees_count": 5,
"followers_count": 193,
"github_login_name": "kenakamu",
"id": "kenakamu",
"items_count": 225,
"linkedin_id": "kenakamu108",
"location": "",
"name": "",
"organization": "Microsoft ",
"permanent_id": 214116,
"profile_image_url": "https://avatars2.githubusercontent.com/u/9940668?v=4",
"team_only": false,
"twitter_screen_name": "kenakamu108",
"website_url": "http://github.com/kenakamu"
},
"page_views_count": null
},
{
...
},
{
...
}
]
이번에는 결과를 회전 목마로 반환합니다. 이 때 lg (Language Generation) 함수를 몇 개 사용합니다.
또 사전에 정의되어 있는 함수가 제공되고 있어 샘플에서도 자주(잘) 사용하기 때문에, 어떤 일을 할 수 있는지 파악해 두면 편리합니다.
GitHub: 미리 정의된 함수
카드를 보내는 방법에 대해서는 공식 문서도 함께 참조하십시오.
기사 취득 대화 상자 추가
이제 Qiita API를 사용하여 기사 검색 대화 상자를 추가해 보겠습니다.
1. 새 대화 상자에서 GetArticles 대화 상자를 추가합니다.
2. "Text Input"액션 추가. Qiita 사용자 이름을 듣습니다.
3. 사용자 입력을 다음과 같이 설정. 유저명은 엔티티에서도 취득할 수 있도록 한다.
4. "Access external resources"에서 "Send an HTTP request"를 선택합니다.
5. Get 메서드를 지정하고 주소에 https://qiita.com/api/v2/users/${dialog.qiitauser}/items?page=1&per_page=3
를 입력합니다.
6. 속성 창 하단의 Result Property 및 Response type을 설정합니다. 이 경우, 결과는 각각 이하의 패스로 액세스 가능. 바로 가기에 대한 자세한 내용은 이전 기사을 참조하십시오.
7. If/Else 분기를 추가합니다. 조건에
$response.statusCode == 200
를 설정.8. "Send a respose"액션을 추가하고
-${ConvertToCards($response.content)}
를 지정합니다. 아직 함수가 없기 때문에 에러가 되지만 무시.9. 메뉴에서 "Bot Responses"를 선택합니다. GetArticles에 함수 추가.
# ConvertToCards(articles)
[Activity
Attachments = ${foreach(articles, article, Herocard(article))}
AttachmentLayout = carousel
]
# Herocard (article)
[HeroCard
title=${article.title}
subtitle = ${join(foreach(article.tags, article, article.name),',')}
text = ${substring(article.body, 0, 300)}
buttons=${Cardaction('openUrl', '記事を見る', article.url)}
]
# Cardaction(type, title, value)
[CardAction
Type = ${if(type == null, 'imBack', type)}
Title = ${title}
Value = ${value}
Text = ${title}
]
10. 메인 대화 상자에서 트리거를 만듭니다. GetArticles 대화 상자의 시작 작업을 추가합니다.
11. 봇을 다시 시작하고 에뮬레이터에서 확인.
GET 이외의 처리 및 헤더 부여
HTTP 요청 작업은 GET 외에도 다음 HTTP 메서드를 지원합니다.
또 헤더도 자유자재입니다.
당연히 메모리 객체를 이용한 동적 값을 지원하기 위해 대부분의 요구 사항이 충족됩니다.
요약
이번에는 HTTP 요청을 사용하는 방법을 살펴 보았습니다. 응답의 처리는 조금 익숙해져야 하지만, 많은 서비스가 같은 동작을 하기 때문에, 일단 사용법을 기억하면 나중에 괜찮습니다.
다음에 작성한 봇을 공개해 보겠습니다.
다음 기사로
목차 페이지로 돌아가기
Reference
이 문제에 관하여(Bot Framework Composer에서 봇 개발 : 8 HTTP 요청 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kenakamu/items/750d6a0de2da05e8851d
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이번에는 HTTP 요청을 사용하는 방법을 살펴 보았습니다. 응답의 처리는 조금 익숙해져야 하지만, 많은 서비스가 같은 동작을 하기 때문에, 일단 사용법을 기억하면 나중에 괜찮습니다.
다음에 작성한 봇을 공개해 보겠습니다.
다음 기사로
목차 페이지로 돌아가기
Reference
이 문제에 관하여(Bot Framework Composer에서 봇 개발 : 8 HTTP 요청 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kenakamu/items/750d6a0de2da05e8851d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)