GAS를 사용하여 LINE BOT에서 놀았습니다.
무엇을 했는가
정기적으로 축구 뉴스 전달
Talk API를 사용한 일상 대화
어떻게 깨달았는가
LINE Messaging API 사용
Messaging API를 사용하여 봇 서버와 LINE 플랫폼 간에 데이터를 교환할 수 있습니다. 요청은 JSON 형식으로 HTTPS를 사용하여 전송됩니다.
1. 사용자가 LINE 공식 계정에 메시지를 보냅니다.
2.LINE 플랫폼에서 봇 서버의 Webhook URL로 Webhook 이벤트가 전송됩니다.
3. Webhook 이벤트에 따라 봇 서버에서 사용자에게 LINE 플랫폼을 통해 응답합니다.
Webhook 대상으로 GAS (Google Apps Script) 사용
GAS는 Google에서 제공하는 자바스크립트 기반 언어
GAS는 Google에서 제공하는 '스크립트 편집기'에 작성되기 때문에 번거로운 환경 구축이 필요하지 않습니다.
스크립트 편집기에 작성한 스크립트는 Google 서버에서 실행되므로 자체 서버도 필요하지 않습니다.
그러나 const, let 등은 사용할 수없는 것 같습니다.
축구 뉴스 배달
획득 기능
취득원은 겟사카의 RSS
soccer// サッカーニュースの取得
function getSoccerNews() {
var options =
{
"contentType" : "text/xml;charset=utf-8",
"method" : "get",
};
var response = UrlFetchApp.fetch("https://web.gekisaka.jp/feed", options);
var xmlDoc = XmlService.parse(response.getContentText());
var rootDoc = xmlDoc.getRootElement();
var item = parser.getElementsByTagName(rootDoc, 'item')
//最新記事のタイトルとリンク取得
var title = parser.getElementsByTagName(item[0],'title');
var link = parser.getElementsByTagName(item[0], 'link');
var msgSoccerNews = [title[0].getValue(), link[0].getValue()];
return msgSoccerNews
}
배달 기능
soccer// 通知機能
function push_soccer_message() {
var msgSoccerNews = getSoccerNews();
var postData = {
"to": USER_ID, //lineのユーザーID
"messages": [
{
"type": "text",
"text": msgSoccerNews[0] + msgSoccerNews[1]
}
]}
var headers = {
"Content-Type": "application/json",
'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN, //lineのアクセストークン
};
var options = {
"method": "post",
"headers": headers,
"payload": JSON.stringify(postData)
};
var response = UrlFetchApp.fetch("https://api.line.me/v2/bot/message/push", options);
}
GAS에는 정기 실행 기능이 있으므로 4시간마다 push_soccer_message
완성!
대화 BOT
API는 모집이 제공하는 Talk API
talk//ポストで送られてくるので、送られてきたJSONをパース
function doPost(e) {
var json = JSON.parse(e.postData.contents);
//返信するためのトークン取得
var reply_token= json.events[0].replyToken;
if (typeof reply_token === 'undefined') {
return;
}
//送られたメッセージ内容を取得
var message = json.events[0].message.text;
//talk apiに送信するデータ
var postData = {
"apikey": api_key, //取得したapikey
"query": message
}
//api通信
var response = UrlFetchApp.fetch("https://api.a3rt.recruit-tech.co.jp/talk/v1/smalltalk", {
"method": "POST",
"payload": postData,
})
//返信文言
var reply = JSON.parse(response).results[0].reply;
var options = {
headers: {
'content-Type': 'application/json; charset=UTF-8',
Authorization: 'Bearer ' + CHANNEL_ACCESS_TOKEN,
},
method: 'post',
payload: JSON.stringify({
replyToken: reply_token,
messages: [{
type: 'text',
text: reply,
}],
}),
}
// メッセージを返信
UrlFetchApp.fetch('https://api.line.me/v2/bot/message/reply',options);
}
완성!
배운 것
API라고 하는 편리한 녀석···스스로 외부의 API에 연결하는 것이 처음이었기 때문에 좋은 공부가 되었다. 다른 API도 사용하고 싶다!
GAS라고 하는 편리한 녀석・・・서버리스로 실장할 수 있으므로 실장의 허들이 내려간다
Webhook ... 서비스 측 post 요청 대상을 지정할 수있는 사람
fetch api ... 요청을 보낼 수 있습니다.
파서··· 구문 분석을 실시한다
Reference
이 문제에 관하여(GAS를 사용하여 LINE BOT에서 놀았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/t-daiki96/items/6dd736d3eb8b38c7e7dd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
LINE Messaging API 사용
Messaging API를 사용하여 봇 서버와 LINE 플랫폼 간에 데이터를 교환할 수 있습니다. 요청은 JSON 형식으로 HTTPS를 사용하여 전송됩니다.
1. 사용자가 LINE 공식 계정에 메시지를 보냅니다.
2.LINE 플랫폼에서 봇 서버의 Webhook URL로 Webhook 이벤트가 전송됩니다.
3. Webhook 이벤트에 따라 봇 서버에서 사용자에게 LINE 플랫폼을 통해 응답합니다.
Webhook 대상으로 GAS (Google Apps Script) 사용
GAS는 Google에서 제공하는 자바스크립트 기반 언어
GAS는 Google에서 제공하는 '스크립트 편집기'에 작성되기 때문에 번거로운 환경 구축이 필요하지 않습니다.
스크립트 편집기에 작성한 스크립트는 Google 서버에서 실행되므로 자체 서버도 필요하지 않습니다.
그러나 const, let 등은 사용할 수없는 것 같습니다.
축구 뉴스 배달
획득 기능
취득원은 겟사카의 RSS
soccer
// サッカーニュースの取得
function getSoccerNews() {
var options =
{
"contentType" : "text/xml;charset=utf-8",
"method" : "get",
};
var response = UrlFetchApp.fetch("https://web.gekisaka.jp/feed", options);
var xmlDoc = XmlService.parse(response.getContentText());
var rootDoc = xmlDoc.getRootElement();
var item = parser.getElementsByTagName(rootDoc, 'item')
//最新記事のタイトルとリンク取得
var title = parser.getElementsByTagName(item[0],'title');
var link = parser.getElementsByTagName(item[0], 'link');
var msgSoccerNews = [title[0].getValue(), link[0].getValue()];
return msgSoccerNews
}
배달 기능
soccer
// 通知機能
function push_soccer_message() {
var msgSoccerNews = getSoccerNews();
var postData = {
"to": USER_ID, //lineのユーザーID
"messages": [
{
"type": "text",
"text": msgSoccerNews[0] + msgSoccerNews[1]
}
]}
var headers = {
"Content-Type": "application/json",
'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN, //lineのアクセストークン
};
var options = {
"method": "post",
"headers": headers,
"payload": JSON.stringify(postData)
};
var response = UrlFetchApp.fetch("https://api.line.me/v2/bot/message/push", options);
}
GAS에는 정기 실행 기능이 있으므로 4시간마다
push_soccer_message
완성!
대화 BOT
API는 모집이 제공하는 Talk API
talk
//ポストで送られてくるので、送られてきたJSONをパース
function doPost(e) {
var json = JSON.parse(e.postData.contents);
//返信するためのトークン取得
var reply_token= json.events[0].replyToken;
if (typeof reply_token === 'undefined') {
return;
}
//送られたメッセージ内容を取得
var message = json.events[0].message.text;
//talk apiに送信するデータ
var postData = {
"apikey": api_key, //取得したapikey
"query": message
}
//api通信
var response = UrlFetchApp.fetch("https://api.a3rt.recruit-tech.co.jp/talk/v1/smalltalk", {
"method": "POST",
"payload": postData,
})
//返信文言
var reply = JSON.parse(response).results[0].reply;
var options = {
headers: {
'content-Type': 'application/json; charset=UTF-8',
Authorization: 'Bearer ' + CHANNEL_ACCESS_TOKEN,
},
method: 'post',
payload: JSON.stringify({
replyToken: reply_token,
messages: [{
type: 'text',
text: reply,
}],
}),
}
// メッセージを返信
UrlFetchApp.fetch('https://api.line.me/v2/bot/message/reply',options);
}
완성!
배운 것
API라고 하는 편리한 녀석···스스로 외부의 API에 연결하는 것이 처음이었기 때문에 좋은 공부가 되었다. 다른 API도 사용하고 싶다!
GAS라고 하는 편리한 녀석・・・서버리스로 실장할 수 있으므로 실장의 허들이 내려간다
Webhook ... 서비스 측 post 요청 대상을 지정할 수있는 사람
fetch api ... 요청을 보낼 수 있습니다.
파서··· 구문 분석을 실시한다
Reference
이 문제에 관하여(GAS를 사용하여 LINE BOT에서 놀았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/t-daiki96/items/6dd736d3eb8b38c7e7dd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(GAS를 사용하여 LINE BOT에서 놀았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/t-daiki96/items/6dd736d3eb8b38c7e7dd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)