Toggle navigation
Toggle navigation
This project
Loading...
Sign in
신지원
/
LineMusicChatbot
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Graphs
Network
Create a new issue
Commits
Issue Boards
Authored by
엄성진
2021-06-08 15:28:41 +0000
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
de2b66848210e860f752e756064a929b596f8302
de2b6684
1 parent
55f8835d
Add Buttons, Fix Function for Communicating
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
549 additions
and
113 deletions
Info.js
check.js
index.js
Info.js
deleted
100644 → 0
View file @
55f8835
//라인 고유 토큰
exports
.
TOKEN
=
'Kb1/rQYz4MUhF8XyKQv7z9x0MxVQ5bX/XO8S/yt/1qQEJVAbsEFAaMvXKEOx9Umr7KhivfyDPfZHRRLFPngR0O4ZGWV2VFses8ufPE7uAdvYr4G6keBNAU69nBz5IC71HfbIrUHxXYqD7GfhVwXzpwdB04t89/1O/w1cDnyilFU='
exports
.
YoutubeKey
=
'AIzaSyBInggOtXxPFYIRee0Xs3vb5iZ9YE9_518'
exports
.
domain
=
'2020105631.oss2021.tk'
\ No newline at end of file
check.js
View file @
de2b668
...
...
@@ -161,7 +161,7 @@ function SEND_LIST(replyToken,response,choice,thumbnail,SendAmount,sendaddress)/
);
}
function
SEND_TEXT
(
replyToken
,
sendMessage
)
//단순 텍스트 전송하는
함수
function
HELP
(
replyToken
,
sendMessage
)
//도움말
함수
{
console
.
log
(
sendMessage
);
request
.
post
(
...
...
@@ -186,9 +186,9 @@ function SEND_TEXT(replyToken,sendMessage) //단순 텍스트 전송하는 함
);
}
function
SETTINGS
(
replyToken
,
sendMessage
)
//설정 함수
function
SETTINGS
(
replyToken
)
//설정 함수
{
console
.
log
(
sendMessage
);
console
.
log
(
"설정 메뉴 진입"
);
request
.
post
(
{
url
:
TARGET_URL
,
...
...
@@ -202,10 +202,6 @@ function SETTINGS(replyToken,sendMessage) //설정 함수
"messages"
:
[
{
"type"
:
"text"
,
"text"
:
sendMessage
},
{
"type"
:
"template"
,
"altText"
:
"설정메뉴입니다."
,
"template"
:
{
...
...
@@ -215,7 +211,7 @@ function SETTINGS(replyToken,sendMessage) //설정 함수
"actions"
:
[
{
"type"
:
"postback"
,
"label"
:
"썸네일
출력
여부 변경"
,
"label"
:
"썸네일
전송
여부 변경"
,
"data"
:
"썸네일"
},
{
...
...
@@ -225,7 +221,7 @@ function SETTINGS(replyToken,sendMessage) //설정 함수
},
{
"type"
:
"postback"
,
"label"
:
"유튜브 주소
출력
여부 변경"
,
"label"
:
"유튜브 주소
전송
여부 변경"
,
"data"
:
"주소"
}
]
...
...
@@ -237,31 +233,377 @@ function SETTINGS(replyToken,sendMessage) //설정 함수
);
}
exports
.
thumbnail_settings
=
function
(
thumbnail_yes
,
userId
)
function
sendplaylist
(
replyToken
,
userId
,
choose
)
{
var
choice
=
ids
.
all_ids
[
choose
];
service
.
playlistItems
.
list
(
{
key
:
Info
.
YoutubeKey
,
part
:
'snippet'
,
fields
:
'items(snippet(title,resourceId,thumbnails(high(url))))'
,
//제목, VideoId, Thumbnail 이미지 정보.
maxResults
:
10
,
playlistId
:
choice
},
function
(
err
,
response
){
if
(
err
)
{
console
.
log
(
'The API returned an error: '
,
err
);
return
;
}
var
video
=
response
.
data
.
items
;
if
(
video
.
length
==
0
)
console
.
log
(
'검색된 동영상이 없습니다.'
);
else
SEND_LIST
(
replyToken
,
response
,
choice
,
setting_Thumbnail
[
setting_userId
.
indexOf
(
userId
)],
setting_SendAmount
[
setting_userId
.
indexOf
(
userId
)],
setting_SendAddress
[
setting_userId
.
indexOf
(
userId
)]);
}
)
// 여기서 썸네일을 출력할지 말지 물어보고나서, 웹훅의 응답을 받아 그 응답에 따라서
// setting_Thumbnail[setting_userId.indexOf(userId)] 의 값를 수정합니다.
// https://developers.line.biz/en/reference/messaging-api/#template-messages 의 confirm 를 참고해서 응용하시면 될 것 같습니다.
// 이곳에 userid에 맞게 setting_Thumbnail, setting_SendAmount, setting_SendAddress 의 값을 수정해주시면 됩니다.
// var thumbnail;
//console.log("111");
//console.log("111222");
// var eventObj = req.body.events[0];
//console.log("setting_userId.indexOf(userId) : before : " + setting_userId.indexOf(userId));
}
function
PLAYLIST
(
replyToken
)
//플레이리스트 함수
{
console
.
log
(
"플레이리스트 선택창 진입"
);
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
Info
.
TOKEN
}
`
},
json
:
{
"replyToken"
:
replyToken
,
"messages"
:
[
{
"type"
:
"template"
,
"altText"
:
"플레이리스트 선택창 입니다."
,
"template"
:
{
"type"
:
"buttons"
,
"title"
:
"분야"
,
"text"
:
"원하시는 분야를 골라주세요."
,
"actions"
:
[
{
"type"
:
"postback"
,
"label"
:
"장르"
,
"data"
:
"genre"
},
{
"type"
:
"postback"
,
"label"
:
"무드"
,
"data"
:
"mood"
},
{
"type"
:
"postback"
,
"label"
:
"가수"
,
"data"
:
"singer"
}
]
}
}
]
}
}
);
}
exports
.
genre
=
function
(
replyToken
)
{
console
.
log
(
"플레이리스트-장르"
);
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
Info
.
TOKEN
}
`
},
json
:
{
"replyToken"
:
replyToken
,
"messages"
:
[
{
"type"
:
"template"
,
"altText"
:
"장르 선택창 입니다."
,
"template"
:
{
"type"
:
"buttons"
,
"title"
:
"장르"
,
"text"
:
"원하시는 장르를 골라주세요."
,
"actions"
:
[
{
"type"
:
"postback"
,
"label"
:
"힙합"
,
"data"
:
"hiphop"
},
{
"type"
:
"postback"
,
"label"
:
"피아노"
,
"data"
:
"piano"
},
{
"type"
:
"postback"
,
"label"
:
"팝"
,
"data"
:
"pop"
}
]
}
}
]
}
}
);
}
exports
.
hiphop
=
function
(
replyToken
,
userId
)
{
console
.
log
(
'플레이리스트-장르-힙합'
);
sendplaylist
(
replyToken
,
userId
,
101
);
}
exports
.
piano
=
function
(
replyToken
,
userId
)
{
console
.
log
(
'플레이리스트-장르-피아노'
);
sendplaylist
(
replyToken
,
userId
,
102
);
}
exports
.
pop
=
function
(
replyToken
,
userId
)
{
console
.
log
(
'플레이리스트-장르-팝'
);
sendplaylist
(
replyToken
,
userId
,
103
);
}
exports
.
mood
=
function
(
replyToken
)
{
console
.
log
(
"플레이리스트-무드"
);
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
Info
.
TOKEN
}
`
},
json
:
{
"replyToken"
:
replyToken
,
"messages"
:
[
{
"type"
:
"template"
,
"altText"
:
"무드 선택창 입니다."
,
"template"
:
{
"type"
:
"buttons"
,
"title"
:
"무드"
,
"text"
:
"원하시는 무드를 골라주세요."
,
"actions"
:
[
{
"type"
:
"postback"
,
"label"
:
"신남"
,
"data"
:
"exciting"
},
{
"type"
:
"postback"
,
"label"
:
"슬픔"
,
"data"
:
"sad"
}
]
}
}
]
}
}
);
}
exports
.
exciting
=
function
(
replyToken
,
userId
)
{
console
.
log
(
'플레이리스트-무드-신남'
);
sendplaylist
(
replyToken
,
userId
,
201
);
}
exports
.
sad
=
function
(
replyToken
,
userId
)
{
console
.
log
(
'플레이리스트-무드-슬픔'
);
sendplaylist
(
replyToken
,
userId
,
202
);
}
exports
.
singer
=
function
(
replyToken
)
{
console
.
log
(
"플레이리스트-가수"
);
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
Info
.
TOKEN
}
`
},
json
:
{
"replyToken"
:
replyToken
,
"messages"
:
[
{
"type"
:
"template"
,
"altText"
:
"가수 선택창 입니다."
,
"template"
:
{
"type"
:
"buttons"
,
"title"
:
"가수"
,
"text"
:
"원하시는 가수를 골라주세요."
,
"actions"
:
[
{
"type"
:
"postback"
,
"label"
:
"블랙핑크"
,
"data"
:
"blackpink"
},
{
"type"
:
"postback"
,
"label"
:
"아이유"
,
"data"
:
"iu"
}
,
{
"type"
:
"postback"
,
"label"
:
"레드벨벳"
,
"data"
:
"redvelvet"
}
,
{
"type"
:
"postback"
,
"label"
:
"트와이스"
,
"data"
:
"twice"
}
]
}
}
]
}
}
);
}
exports
.
blackpink
=
function
(
replyToken
,
userId
)
{
console
.
log
(
'플레이리스트-가수-블랙핑크'
);
sendplaylist
(
replyToken
,
userId
,
301
);
}
exports
.
iu
=
function
(
replyToken
,
userId
)
{
console
.
log
(
'플레이리스트-가수-아이유'
);
sendplaylist
(
replyToken
,
userId
,
302
);
}
exports
.
redvelvet
=
function
(
replyToken
,
userId
)
{
console
.
log
(
'플레이리스트-가수-레드벨벳'
);
sendplaylist
(
replyToken
,
userId
,
303
);
}
exports
.
twice
=
function
(
replyToken
,
userId
)
{
console
.
log
(
'플레이리스트-가수-트와이스'
);
sendplaylist
(
replyToken
,
userId
,
304
);
}
exports
.
thumbnail_settings
=
function
(
replyToken
)
{
setting_Thumbnail
[
setting_userId
.
indexOf
(
userId
)]
=
thumbnail_yes
;
//console.log("setting_userId.indexOf(userId) : after : " + setting_Thumbnail[setting_userId.indexOf(userId)])
console
.
log
(
thumbnail_yes
+
"after"
);
console
.
log
(
'썸네일 전송 설정'
);
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
Info
.
TOKEN
}
`
},
json
:
{
"replyToken"
:
replyToken
,
"messages"
:
[
{
"type"
:
"template"
,
"altText"
:
"설정메뉴입니다."
,
"template"
:
{
"type"
:
"buttons"
,
"title"
:
"썸네일 전송 여부 변경"
,
"text"
:
"아래 항목을 골라주세요."
,
"actions"
:
[
{
"type"
:
"postback"
,
"label"
:
"썸네일 전송 O"
,
"data"
:
"enablethumbnail"
},
{
"type"
:
"postback"
,
"label"
:
"썸네일 전송 X"
,
"data"
:
"unablethumbnail"
},
]
}
}
]
}
}
console
.
log
(
"111111"
);
);
}
exports
.
enablethumbnail
=
function
(
replyToken
,
userId
)
{
console
.
log
(
'썸네일 활성화 됨.'
);
setting_Thumbnail
[
setting_userId
.
indexOf
(
userId
)]
=
1
;
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
Info
.
TOKEN
}
`
},
json
:
{
"replyToken"
:
replyToken
,
"messages"
:
[
{
"type"
:
"text"
,
"text"
:
"이제 썸네일이 전송됩니다!"
}
]
}
}
);
}
exports
.
unablethumbnail
=
function
(
replyToken
,
userId
)
{
console
.
log
(
'썸네일 비활성화 됨.'
);
setting_Thumbnail
[
setting_userId
.
indexOf
(
userId
)]
=
0
;
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
Info
.
TOKEN
}
`
},
json
:
{
"replyToken"
:
replyToken
,
"messages"
:
[
{
"type"
:
"text"
,
"text"
:
"이제 썸네일이 전송되지 않습니다!"
}
]
}
}
);
}
exports
.
amount_settings
=
function
(
replyToken
,
userId
)
{
...
...
@@ -271,12 +613,103 @@ exports.amount_settings = function (replyToken, userId)
// 이거는 단순하게 숫자를 입력받으면 될 것 같습니다. 다만 1,2,3,4,5,6,7,8,9,10 의 응답만 받도록 해주셔야 합니다. (예외처리 필수)
}
exports
.
address_settings
=
function
(
replyToken
,
userId
)
exports
.
address_settings
=
function
(
replyToken
,)
{
console
.
log
(
'유튜브 주소 전송 설정'
);
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
Info
.
TOKEN
}
`
},
json
:
{
"replyToken"
:
replyToken
,
"messages"
:
[
{
"type"
:
"template"
,
"altText"
:
"설정메뉴입니다."
,
"template"
:
{
"type"
:
"buttons"
,
"title"
:
"유튜브 주소 전송 여부 변경"
,
"text"
:
"아래 항목을 골라주세요."
,
"actions"
:
[
{
"type"
:
"postback"
,
"label"
:
"유튜브 주소 전송 O"
,
"data"
:
"enableaddress"
},
{
"type"
:
"postback"
,
"label"
:
"유튜브 주소 전송 X"
,
"data"
:
"unableaddress"
},
]
}
}
]
}
}
);
}
exports
.
enableaddress
=
function
(
replyToken
,
userId
)
{
console
.
log
(
'주소 활성화 됨.'
);
setting_SendAddress
[
setting_userId
.
indexOf
(
userId
)]
=
1
;
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
Info
.
TOKEN
}
`
},
json
:
{
"replyToken"
:
replyToken
,
"messages"
:
[
{
"type"
:
"text"
,
"text"
:
"이제 유튜브 주소가 전송됩니다!"
}
]
}
}
);
}
exports
.
unableaddress
=
function
(
replyToken
,
userId
)
{
console
.
log
(
'유튜브 주소 출력 설정'
);
// 여기서 유튜브 주소를 출력할지 말지 물어보고나서, 웹훅의 응답을 받아 그 응답에 따라서
// setting_SendAddress[setting_userId.indexOf(userId)] 의 값를 수정합니다.
// https://developers.line.biz/en/reference/messaging-api/#template-messages 의 confirm 를 참고해서 응용하시면 될 것 같습니다.
console
.
log
(
'주소 비활성화 됨.'
);
setting_SendAddress
[
setting_userId
.
indexOf
(
userId
)]
=
0
;
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
Info
.
TOKEN
}
`
},
json
:
{
"replyToken"
:
replyToken
,
"messages"
:
[
{
"type"
:
"text"
,
"text"
:
"이제 유튜브 주소가 전송되지 않습니다!"
}
]
}
}
);
}
exports
.
check
=
function
(
message
,
replyToken
,
userId
)
{
...
...
@@ -331,6 +764,10 @@ exports.check = function (message, replyToken, userId) {
choose
=
304
;
choice
=
ids
.
all_ids
[
choose
]
break
;
case
"플레이리스트"
:
choose
=
100
;
choice
=
0
;
break
;
case
"도움말"
:
choose
=
001
;
choice
=
0
;
...
...
@@ -417,14 +854,16 @@ exports.check = function (message, replyToken, userId) {
+
"\n"
+
"- '플레이리스트'를 입력하면 분류에 따라 엄선한 음악을 추천드립니다!"
+
"\n"
+
"- '설정'을 입력하면 썸네일 출력 여부, 추천 음악 개수(1~10), 유튜브 주소 전송 여부를 설정하실 수 있습니다."
+
"\n"
+
"- 이 도움말을 다시 보고 싶으시다면 '도움말'을 입력하시면 됩니다! 음악과 함께 좋은 하루 보내세요."
;
SEND_TEXT
(
replyToken
,
sendMessage
);
HELP
(
replyToken
,
sendMessage
);
}
else
if
(
choose
==
002
)
{
// 설정
sendMessage
=
"설정 예시"
;
SETTINGS
(
replyToken
,
sendMessage
);
SETTINGS
(
replyToken
);
}
else
{
//플레이리스트
PLAYLIST
(
replyToken
);
/*
service.playlistItems.list(
{
key: Info.YoutubeKey,
...
...
@@ -444,5 +883,6 @@ exports.check = function (message, replyToken, userId) {
SEND_LIST(replyToken,response,choice,setting_Thumbnail[setting_userId.indexOf(userId)],setting_SendAmount[setting_userId.indexOf(userId)],setting_SendAddress[setting_userId.indexOf(userId)]);
}
)
*/
}
}
\ No newline at end of file
...
...
index.js
View file @
de2b668
...
...
@@ -11,7 +11,6 @@ var app = express();
app
.
use
(
bodyParser
.
json
());
var
songs
=
require
(
'./check'
);
var
thumbnail
=
1
;
// 썸네일 출력 여부 (1:출력/0:미출력/기본값:1)
var
post2
=
require
(
'./post2'
);
var
thumbnail_yes
;
app
.
post
(
'/hook'
,
function
(
req
,
res
)
{
...
...
@@ -20,90 +19,91 @@ app.post('/hook', function (req, res) {
// request log
console
.
log
(
'======================'
,
new
Date
(),
'======================'
);
console
.
log
(
eventObj
);
if
(
eventObj
.
type
==
"message"
)
// 일반 메시지일때
react
(
eventObj
.
replyToken
,
message
.
text
,
eventObj
.
source
.
userId
);
else
if
(
eventObj
.
postback
.
data
==
"썸네일"
)
//설정에서 썸네일 설정버튼을 눌렀을때
{
console
.
log
(
'썸네일 출력 설정'
);
request
.
post
(
{
url
:
TARGET_URL
,
headers
:
{
'Authorization'
:
`Bearer
${
Info
.
TOKEN
}
`
},
json
:
{
"replyToken"
:
eventObj
.
replyToken
,
"messages"
:
[
{
"type"
:
"text"
,
"text"
:
sendMessage
},
{
"type"
:
"template"
,
"altText"
:
"설정메뉴입니다."
,
"template"
:
{
"type"
:
"buttons"
,
"title"
:
"썸네일 출력 여부 변경"
,
"text"
:
"아래 항목을 골라주세요."
,
"actions"
:
[
{
"type"
:
"postback"
,
"label"
:
"썸네일 출력 O"
,
"data"
:
thumbnail_yes
=
1
},
{
"type"
:
"postback"
,
"label"
:
"썸네일 출력 X"
,
"data"
:
thumbnail_yes
=
0
},
{
"type"
:
"postback"
,
"label"
:
"뒤로가기"
,
"data"
:
thumbnail_yes
=
-
1
}
]
}
}
]
}
}
);
}
else
if
(
eventObj
.
postback
.
data
==
"개수"
)
//설정에서 출력 개수 설정버튼을 눌렀을때
songs
.
amount_settings
(
eventObj
.
replyToken
,
eventObj
.
source
.
userId
);
else
switch
(
eventObj
.
postback
.
data
)
{
case
"썸네일"
:
//설정에서 썸네일 설정버튼을 눌렀을때
songs
.
thumbnail_settings
(
eventObj
.
replyToken
);
break
;
case
"enablethumbnail"
:
//설정 -> 썸네일 설정 -> 활성화
songs
.
enablethumbnail
(
eventObj
.
replyToken
,
eventObj
.
source
.
userId
);
break
;
case
"unablethumbnail"
:
//설정 -> 썸네일 설정 -> 비활성화
songs
.
unablethumbnail
(
eventObj
.
replyToken
,
eventObj
.
source
.
userId
);
break
;
//else if (출력 개수 설정 버튼을 누르고 거기서 응답이 들어왔을때)
else
if
(
eventObj
.
postback
.
data
==
"주소"
)
//설정에서 유튜브 주소 설정버튼을 눌렀을때
songs
.
address_settings
(
eventObj
.
replyToken
,
eventObj
.
source
.
userId
);
case
"개수"
:
//설정에서 출력 개수 설정버튼을 눌렀을때
songs
.
amount_settings
(
eventObj
.
replyToken
,
eventObj
.
source
.
userId
);
break
;
//else if (유튜브 주소 설정 버튼을 누르고 거기서 응답이 들어왔을때)
//★★else if (플레이리스트를 입력했을때 뜬 버튼에서 장르를 눌렀을때)
//★★else if (플레이리스트를 입력했을때 뜬 버튼에서 무드를 눌렀을때)
//★★else if (플레이리스트를 입력했을때 뜬 버튼에서 가수를 눌렀을때)
thumbnail_yes
=
postback
.
data
;
console
.
log
(
"thumbnail_yes : "
+
thumbnail_yes
);
if
(
thumbnail_yes
===
1
||
thumbnail_yes
===
0
)
{
songs
.
thumbnail_settings
(
thumbnail_yes
,
eventObj
.
source
.
userId
);
case
"주소"
:
//설정에서 유튜브 주소 설정버튼을 눌렀을때
songs
.
address_settings
(
eventObj
.
replyToken
);
break
;
case
"enableaddress"
:
//설정 -> 주소 설정 -> 활성화
songs
.
enableaddress
(
eventObj
.
replyToken
,
eventObj
.
source
.
userId
);
break
;
case
"unableaddress"
:
//설정 -> 주소 설정 -> 비활성화
songs
.
unableaddress
(
eventObj
.
replyToken
,
eventObj
.
source
.
userId
);
break
;
}
else
if
(
thumbnail_yes
===
-
1
)
console
.
log
(
"뒤로가기"
);
else
console
.
log
(
"NULL값 입력임"
);
case
"genre"
:
// 플레이리스트 -> 장르
songs
.
genre
(
eventObj
.
replyToken
);
break
;
case
"hiphop"
:
// 플레이리스트 -> 장르 -> 힙합
songs
.
hiphop
(
eventObj
.
replyToken
,
eventObj
.
source
.
userId
);
break
;
case
"piano"
:
// 플레이리스트 -> 장르 -> 피아노
songs
.
piano
(
eventObj
.
replyToken
,
eventObj
.
source
.
userId
);
break
;
case
"pop"
:
// 플레이리스트 -> 장르 -> 팝
songs
.
pop
(
eventObj
.
replyToken
,
eventObj
.
source
.
userId
);
break
;
case
"mood"
:
// 플레이리스트 -> 무드
songs
.
mood
(
eventObj
.
replyToken
);
break
;
case
"exciting"
:
// 플레이리스트 -> 무드 -> 신남
songs
.
exciting
(
eventObj
.
replyToken
,
eventObj
.
source
.
userId
);
break
;
case
"sad"
:
// 플레이리스트 -> 무드 -> 슬픔
songs
.
sad
(
eventObj
.
replyToken
,
eventObj
.
source
.
userId
);
break
;
case
"singer"
:
// 플레이리스트 -> 가수
songs
.
singer
(
eventObj
.
replyToken
);
break
;
case
"blackpink"
:
// 플레이리스트 -> 가수 -> 블랙핑크
songs
.
blackpink
(
eventObj
.
replyToken
,
eventObj
.
source
.
userId
);
break
;
case
"iu"
:
// 플레이리스트 -> 가수 -> 아이유
songs
.
iu
(
eventObj
.
replyToken
,
eventObj
.
source
.
userId
);
break
;
case
"redvelvet"
:
// 플레이리스트 -> 가수 -> 레드벨벳
songs
.
redvelvet
(
eventObj
.
replyToken
,
eventObj
.
source
.
userId
);
break
;
case
"twice"
:
// 플레이리스트 -> 가수 -> 트와이스
songs
.
twice
(
eventObj
.
replyToken
,
eventObj
.
source
.
userId
);
break
;
//else if (출력 개수 설정 버튼을 누르고 거기서 응답이 들어왔을때)
};
console
.
log
(
"11"
);
res
.
sendStatus
(
200
);
});
function
react
(
replyToken
,
message
,
userId
)
{
request
.
post
(
...
...
Please
register
or
login
to post a comment