비프로그래밍을 통해 외부 API를 활용한 LINE WORKS BOT 제작(전날 계속)
개시하다
전날 보도 우리 회사 직원들도 틀이 생겼는데 이번에 거기서 더 발전해 외부 API에서 입수한 JSON 정보를 다루는 라인 워커스 BOT의 사례를 소개한다.
카탈로그
1. Botbird for Business와 LINE WORKS의 결합 설정
2. 본문에 사용된 API
3. API에서 JSON을 획득하여 LINE WORKS의 BOT를 통해 정기적으로 발송
4. LINE WORKS의 BOET에 메시지를 보내고 API에서 정보를 받습니다.
5. FAQ BOT를 통해 여러 JSON의 결과 표시
1. Botbird for Business와 LINE WORKS의 결합 설정
Botbird for Business(이하 Botbird)의 베타 버전은 무료로 이용할 수 있기 때문에 LINE WORKS bot과 협업할 수 있다.( https://botbirdbiz.com )
이쪽뉴스. 등이 그 방법을 해설했기 때문에 본 기사에서는 협력 설정 순서를 생략했다.
2. 본문에 사용된 API
이번에는 날씨 정보를 제공하는 다음 API를 예로 들겠습니다.
livedoor 날씨 정보http://weather.livedoor.com/)
날씨 웹 서비스(Livedoor Weather 웹 서비스)
( http://weather.livedoor.com/weather_hacks/webservice)
※ 본 기사에서 언급한 API는 액션 테스트 용도로 사용됩니다.다른 방법을 사용할 때
이용 약관 등을 별도로 확인해 주십시오
3. API에서 JSON을 획득하여 LINE WORKS의 BOT를 통해 정기적으로 발송
Botbird로 API에서 JSON을 얻어 LINE WORKS에 정기적으로 보내는 방법을 시도해 보세요.
예를 들어 도쿄의 날씨 정보를 얻으려면 다음과 같은 방식으로 API 요청을 하십시오
http://weather.livedoor.com/forecast/webservice/json/v1?city=130010
다음 JSON을 반환했습니다.
{'copyright': {'image': {'height': 26,
'link': 'http://weather.livedoor.com/',
'title': 'livedoor 天気情報',
'url': 'http://weather.livedoor.com/img/cmn/livedoor.gif',
'width': 118},
'link': 'http://weather.livedoor.com/',
'provider': [{'link': 'http://tenki.jp/', 'name': '日本気象協会'}],
'title': '(C) LINE Corporation'},
'description': {'publicTime': '2019-12-06T10:37:00+0900',
'text': ' 日本付近は冬型の気圧配置となっています。また、伊豆諸島から房総半島沖は気圧の谷となっています。\n'
'\n'
' 東京地方は、おおむね曇りとなっています。\n'
'\n'
' 6日は、冬型の気圧配置は次第に緩みますが、気圧の谷の影響を受けるでしょう。このため、曇りでしょう。\n'
'\n'
' '
'7日は、低気圧が伊豆諸島付近で発生し、関東の東に進むため、曇りで昼前から夕方にかけて雨か雪が降る見込みです。\n'
'\n'
'【関東甲信地方】\n'
' 関東甲信地方は、おおむね曇りで長野県の北部の山沿いでは雪の降っている所があります。\n'
'\n'
' '
'6日は、冬型の気圧配置は次第に緩みますが、気圧の谷の影響を受けるでしょう。このため、曇りや晴れで、長野県では夕方まで雪の降る所がある見込みです。\n'
'\n'
' '
'7日は、低気圧が伊豆諸島付近で発生し、関東の東に進むため、曇りで関東地方南部を中心に雨や雪が降るでしょう。\n'
'\n'
' '
'関東地方と伊豆諸島の海上では、6日から7日は、うねりを伴って波が高い見込みです。船舶は高波に注意してください。'},
'forecasts': [{'date': '2019-12-06',
'dateLabel': '今日',
'image': {'height': 31,
'title': '曇り',
'url': 'http://weather.livedoor.com/img/icon/8.gif',
'width': 50},
'telop': '曇り',
'temperature': {'max': {'celsius': '10', 'fahrenheit': '50.0'},
'min': None}},
{'date': '2019-12-07',
'dateLabel': '明日',
'image': {'height': 31,
'title': '曇時々雨',
'url': 'http://weather.livedoor.com/img/icon/10.gif',
'width': 50},
'telop': '曇時々雨',
'temperature': {'max': {'celsius': '5', 'fahrenheit': '41.0'},
'min': {'celsius': '4', 'fahrenheit': '39.2'}}},
{'date': '2019-12-08',
'dateLabel': '明後日',
'image': {'height': 31,
'title': '晴れ',
'url': 'http://weather.livedoor.com/img/icon/1.gif',
'width': 50},
'telop': '晴れ',
'temperature': {'max': None, 'min': None}}],
'link': 'http://weather.livedoor.com/area/forecast/130010',
'location': {'area': '関東', 'city': '東京', 'prefecture': '東京都'},
'pinpointLocations': [{'link': 'http://weather.livedoor.com/area/forecast/1310100',
'name': '千代田区'},
{'link': 'http://weather.livedoor.com/area/forecast/1310200',
'name': '中央区'},
{'link': 'http://weather.livedoor.com/area/forecast/1310300',
'name': '港区'},
〜 〜 省略 〜 〜
{'link': 'http://weather.livedoor.com/area/forecast/1330500',
'name': '日の出町'},
{'link': 'http://weather.livedoor.com/area/forecast/1330700',
'name': '檜原村'},
{'link': 'http://weather.livedoor.com/area/forecast/1330800',
'name': '奥多摩町'}],
'publicTime': '2019-12-06T11:00:00+0900',
'title': '東京都 東京 の天気'}
이 JSON에서 타이틀 키와 description 키의 정보를 뽑아 라인 워커스에서 정기적으로 날씨 정보를 보내는bot을 만들어보자.다음 Botbird 관리 화면에 로그인하여 "날짜와 요일 지정bot"을 열고 API에서 JSON 탭을 가져오려면 로그인하십시오.
등록된 실제 태그
{json_get:title: http://weather.livedoor.com/forecast/webservice/json/v1?city=130010 }
{json_get:description,text: http://weather.livedoor.com/forecast/webservice/json/v1?city=130010 }
위에서 설명한 대로 API에서 가져온 JSON에서 원하는 정보의 키를 지정합니다.
라벨의 상세한 설명은 여기에 있다(https://help.botbird.biz/2016/07/12/botbird-for-business-replace-tag/)
이런 설정을 하면 라인 워커스의 봇이 매일 접속하는 시간에 일기예보를 보낸다.
4. LINE WORKS의 BOET에 메시지를 보내고 API에서 정보를 받습니다.
다음에 날씨 상황을 알고 싶을 때 보틀에 메시지를 던져 답을 얻는 방법을 시도해 보자.사용자의 정보가 보트 반응을 일으키려면 간단한 답장 기능에 정보를 등록하세요.
간단한 회신 관리 화면에 (3.)와 동일한 태그 내용을 붙여넣고 서버에 저장을 눌러 등록합니다.
이렇게 되면 LINE WORKS에서 BOT에 정보를 던지면 날씨 정보가 API에서 획득돼 반환된다.
또한 태그는 위에서 설명한 대로 POST 메서드를 사용할 수도 있습니다.자세한 내용은 이쪽https://help.botbird.biz/2016/07/12/botbird-for-business-replace-tag/)을 보십시오.
위에서 설명한 대로 Botbird를 통해 API에서 JSON 정보를 가져와 Bot의 정보에 반영할 수 있습니다.
나는 이 방법으로 API를 사용하면 편리한 BOT를 만들 수 있다고 생각한다.
5. FAQ BOT를 통해 여러 JSON의 결과 표시
Botbird의 FAQ bot이라는 기능을 사용하면 사용자가 입력한 문구에 대해 가장 적합한 순서에 따라 미리 준비한 답변을 할 수 있다.(자세한 내용은 다음과 같다: https://help.botbird.biz/2019/06/13/faqbot/)
이 FAQ BOT를 이용해 지금까지 본 API 날씨 정보의 대상 지역을 도쿄, 요코하마, 교토 등 3개 지역에 대응하는 답변을 한다.
아래와 같이'단순 FAQ BOT'의 편집 화면을 열고 도쿄, 요코하마, 교토에 대응하는 다양한 답변을 (3.)(4.) 때와 같은 표로 설정한다.
그리고 (4.)에서 소개한 간단한 답장에 {faq: "FAQ BOT의 번호"}의 라벨을 기술하면 FAQ BOT를 사용할 수 있습니다.
실제로 LINE WORKS에서 날씨 정보를 호출할 때 각지의 날씨 정보가 표시되는 카셀 UI를 볼 수 있어 순서대로 가로로 스크롤할 수 있다.
LINWORKS와 Botbird for Business를 결합해 API로부터 JSON 정보를 받아 사용한 사례를 소개한다.
Reference
이 문제에 관하여(비프로그래밍을 통해 외부 API를 활용한 LINE WORKS BOT 제작(전날 계속)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/met_b/items/ac25a7679fa3bf5153d0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)