Showing
3 changed files
with
549 additions
and
113 deletions
Info.js
deleted
100644 → 0
| 1 | -//라인 고유 토큰 | ||
| 2 | -exports.TOKEN = 'Kb1/rQYz4MUhF8XyKQv7z9x0MxVQ5bX/XO8S/yt/1qQEJVAbsEFAaMvXKEOx9Umr7KhivfyDPfZHRRLFPngR0O4ZGWV2VFses8ufPE7uAdvYr4G6keBNAU69nBz5IC71HfbIrUHxXYqD7GfhVwXzpwdB04t89/1O/w1cDnyilFU=' | ||
| 3 | -exports.YoutubeKey = 'AIzaSyBInggOtXxPFYIRee0Xs3vb5iZ9YE9_518' | ||
| 4 | -exports.domain='2020105631.oss2021.tk' | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -161,7 +161,7 @@ function SEND_LIST(replyToken,response,choice,thumbnail,SendAmount,sendaddress)/ | ... | @@ -161,7 +161,7 @@ function SEND_LIST(replyToken,response,choice,thumbnail,SendAmount,sendaddress)/ |
| 161 | ); | 161 | ); |
| 162 | } | 162 | } |
| 163 | 163 | ||
| 164 | -function SEND_TEXT(replyToken,sendMessage) //단순 텍스트 전송하는 함수 | 164 | +function HELP(replyToken,sendMessage) //도움말 함수 |
| 165 | { | 165 | { |
| 166 | console.log(sendMessage); | 166 | console.log(sendMessage); |
| 167 | request.post( | 167 | request.post( |
| ... | @@ -186,9 +186,9 @@ function SEND_TEXT(replyToken,sendMessage) //단순 텍스트 전송하는 함 | ... | @@ -186,9 +186,9 @@ function SEND_TEXT(replyToken,sendMessage) //단순 텍스트 전송하는 함 |
| 186 | ); | 186 | ); |
| 187 | } | 187 | } |
| 188 | 188 | ||
| 189 | -function SETTINGS(replyToken,sendMessage) //설정 함수 | 189 | +function SETTINGS(replyToken) //설정 함수 |
| 190 | { | 190 | { |
| 191 | - console.log(sendMessage); | 191 | + console.log("설정 메뉴 진입"); |
| 192 | request.post( | 192 | request.post( |
| 193 | { | 193 | { |
| 194 | url: TARGET_URL, | 194 | url: TARGET_URL, |
| ... | @@ -202,10 +202,6 @@ function SETTINGS(replyToken,sendMessage) //설정 함수 | ... | @@ -202,10 +202,6 @@ function SETTINGS(replyToken,sendMessage) //설정 함수 |
| 202 | "messages": | 202 | "messages": |
| 203 | [ | 203 | [ |
| 204 | { | 204 | { |
| 205 | - "type": "text", | ||
| 206 | - "text": sendMessage | ||
| 207 | - }, | ||
| 208 | - { | ||
| 209 | "type": "template", | 205 | "type": "template", |
| 210 | "altText": "설정메뉴입니다.", | 206 | "altText": "설정메뉴입니다.", |
| 211 | "template": { | 207 | "template": { |
| ... | @@ -215,7 +211,7 @@ function SETTINGS(replyToken,sendMessage) //설정 함수 | ... | @@ -215,7 +211,7 @@ function SETTINGS(replyToken,sendMessage) //설정 함수 |
| 215 | "actions": [ | 211 | "actions": [ |
| 216 | { | 212 | { |
| 217 | "type": "postback", | 213 | "type": "postback", |
| 218 | - "label": "썸네일 출력 여부 변경", | 214 | + "label": "썸네일 전송 여부 변경", |
| 219 | "data": "썸네일" | 215 | "data": "썸네일" |
| 220 | }, | 216 | }, |
| 221 | { | 217 | { |
| ... | @@ -225,7 +221,7 @@ function SETTINGS(replyToken,sendMessage) //설정 함수 | ... | @@ -225,7 +221,7 @@ function SETTINGS(replyToken,sendMessage) //설정 함수 |
| 225 | }, | 221 | }, |
| 226 | { | 222 | { |
| 227 | "type": "postback", | 223 | "type": "postback", |
| 228 | - "label": "유튜브 주소 출력 여부 변경", | 224 | + "label": "유튜브 주소 전송 여부 변경", |
| 229 | "data": "주소" | 225 | "data": "주소" |
| 230 | } | 226 | } |
| 231 | ] | 227 | ] |
| ... | @@ -237,31 +233,377 @@ function SETTINGS(replyToken,sendMessage) //설정 함수 | ... | @@ -237,31 +233,377 @@ function SETTINGS(replyToken,sendMessage) //설정 함수 |
| 237 | ); | 233 | ); |
| 238 | } | 234 | } |
| 239 | 235 | ||
| 240 | -exports.thumbnail_settings = function (thumbnail_yes,userId) | 236 | +function sendplaylist(replyToken, userId, choose) |
| 241 | { | 237 | { |
| 238 | + var choice=ids.all_ids[choose]; | ||
| 239 | + service.playlistItems.list( | ||
| 240 | + { | ||
| 241 | + key: Info.YoutubeKey, | ||
| 242 | + part: 'snippet', | ||
| 243 | + fields: 'items(snippet(title,resourceId,thumbnails(high(url))))', //제목, VideoId, Thumbnail 이미지 정보. | ||
| 244 | + maxResults: 10, | ||
| 245 | + playlistId: choice | ||
| 246 | + }, function (err, response){ | ||
| 247 | + if (err) { | ||
| 248 | + console.log('The API returned an error: ', err); | ||
| 249 | + return; | ||
| 250 | + } | ||
| 251 | + var video = response.data.items; | ||
| 252 | + if (video.length == 0) | ||
| 253 | + console.log('검색된 동영상이 없습니다.'); | ||
| 254 | + else | ||
| 255 | + SEND_LIST(replyToken,response,choice,setting_Thumbnail[setting_userId.indexOf(userId)],setting_SendAmount[setting_userId.indexOf(userId)],setting_SendAddress[setting_userId.indexOf(userId)]); | ||
| 256 | + } | ||
| 257 | + ) | ||
| 242 | 258 | ||
| 243 | - // 여기서 썸네일을 출력할지 말지 물어보고나서, 웹훅의 응답을 받아 그 응답에 따라서 | 259 | +} |
| 244 | - // setting_Thumbnail[setting_userId.indexOf(userId)] 의 값를 수정합니다. | ||
| 245 | - // https://developers.line.biz/en/reference/messaging-api/#template-messages 의 confirm 를 참고해서 응용하시면 될 것 같습니다. | ||
| 246 | - // 이곳에 userid에 맞게 setting_Thumbnail, setting_SendAmount, setting_SendAddress 의 값을 수정해주시면 됩니다. | ||
| 247 | - // var thumbnail; | ||
| 248 | - | ||
| 249 | - //console.log("111"); | ||
| 250 | - //console.log("111222"); | ||
| 251 | - | ||
| 252 | - // var eventObj = req.body.events[0]; | ||
| 253 | - //console.log("setting_userId.indexOf(userId) : before : " + setting_userId.indexOf(userId)); | ||
| 254 | 260 | ||
| 261 | + | ||
| 262 | +function PLAYLIST(replyToken) //플레이리스트 함수 | ||
| 263 | +{ | ||
| 264 | + console.log("플레이리스트 선택창 진입"); | ||
| 265 | + request.post( | ||
| 266 | + { | ||
| 267 | + url: TARGET_URL, | ||
| 268 | + headers: | ||
| 269 | + { | ||
| 270 | + 'Authorization': `Bearer ${Info.TOKEN}` | ||
| 271 | + }, | ||
| 272 | + json: | ||
| 273 | + { | ||
| 274 | + "replyToken": replyToken, | ||
| 275 | + "messages": | ||
| 276 | + [ | ||
| 277 | + { | ||
| 278 | + "type": "template", | ||
| 279 | + "altText": "플레이리스트 선택창 입니다.", | ||
| 280 | + "template": { | ||
| 281 | + "type": "buttons", | ||
| 282 | + "title": "분야", | ||
| 283 | + "text": "원하시는 분야를 골라주세요.", | ||
| 284 | + "actions": [ | ||
| 285 | + { | ||
| 286 | + "type": "postback", | ||
| 287 | + "label": "장르", | ||
| 288 | + "data": "genre" | ||
| 289 | + }, | ||
| 290 | + { | ||
| 291 | + "type": "postback", | ||
| 292 | + "label": "무드", | ||
| 293 | + "data": "mood" | ||
| 294 | + }, | ||
| 295 | + { | ||
| 296 | + "type": "postback", | ||
| 297 | + "label": "가수", | ||
| 298 | + "data": "singer" | ||
| 299 | + } | ||
| 300 | + ] | ||
| 301 | + } | ||
| 302 | + } | ||
| 303 | + ] | ||
| 304 | + } | ||
| 305 | + } | ||
| 306 | + ); | ||
| 307 | +} | ||
| 308 | + | ||
| 309 | +exports.genre = function (replyToken) | ||
| 310 | +{ | ||
| 311 | + console.log("플레이리스트-장르"); | ||
| 312 | + request.post( | ||
| 313 | + { | ||
| 314 | + url: TARGET_URL, | ||
| 315 | + headers: | ||
| 316 | + { | ||
| 317 | + 'Authorization': `Bearer ${Info.TOKEN}` | ||
| 318 | + }, | ||
| 319 | + json: | ||
| 320 | + { | ||
| 321 | + "replyToken": replyToken, | ||
| 322 | + "messages": | ||
| 323 | + [ | ||
| 324 | + { | ||
| 325 | + "type": "template", | ||
| 326 | + "altText": "장르 선택창 입니다.", | ||
| 327 | + "template": { | ||
| 328 | + "type": "buttons", | ||
| 329 | + "title": "장르", | ||
| 330 | + "text": "원하시는 장르를 골라주세요.", | ||
| 331 | + "actions": [ | ||
| 332 | + { | ||
| 333 | + "type": "postback", | ||
| 334 | + "label": "힙합", | ||
| 335 | + "data": "hiphop" | ||
| 336 | + }, | ||
| 337 | + { | ||
| 338 | + "type": "postback", | ||
| 339 | + "label": "피아노", | ||
| 340 | + "data": "piano" | ||
| 341 | + }, | ||
| 342 | + { | ||
| 343 | + "type": "postback", | ||
| 344 | + "label": "팝", | ||
| 345 | + "data": "pop" | ||
| 346 | + } | ||
| 347 | + ] | ||
| 348 | + } | ||
| 349 | + } | ||
| 350 | + ] | ||
| 351 | + } | ||
| 352 | + } | ||
| 353 | + ); | ||
| 354 | +} | ||
| 355 | + | ||
| 356 | +exports.hiphop = function(replyToken,userId) | ||
| 357 | +{ | ||
| 358 | + console.log('플레이리스트-장르-힙합'); | ||
| 359 | + sendplaylist(replyToken, userId, 101); | ||
| 360 | +} | ||
| 361 | + | ||
| 362 | +exports.piano = function(replyToken,userId) | ||
| 363 | +{ | ||
| 364 | + console.log('플레이리스트-장르-피아노'); | ||
| 365 | + sendplaylist(replyToken, userId, 102); | ||
| 366 | +} | ||
| 367 | + | ||
| 368 | +exports.pop = function(replyToken,userId) | ||
| 369 | +{ | ||
| 370 | + console.log('플레이리스트-장르-팝'); | ||
| 371 | + sendplaylist(replyToken, userId, 103); | ||
| 372 | +} | ||
| 373 | + | ||
| 374 | +exports.mood = function (replyToken) | ||
| 375 | +{ | ||
| 376 | + console.log("플레이리스트-무드"); | ||
| 377 | + request.post( | ||
| 378 | + { | ||
| 379 | + url: TARGET_URL, | ||
| 380 | + headers: | ||
| 381 | + { | ||
| 382 | + 'Authorization': `Bearer ${Info.TOKEN}` | ||
| 383 | + }, | ||
| 384 | + json: | ||
| 385 | + { | ||
| 386 | + "replyToken": replyToken, | ||
| 387 | + "messages": | ||
| 388 | + [ | ||
| 389 | + { | ||
| 390 | + "type": "template", | ||
| 391 | + "altText": "무드 선택창 입니다.", | ||
| 392 | + "template": { | ||
| 393 | + "type": "buttons", | ||
| 394 | + "title": "무드", | ||
| 395 | + "text": "원하시는 무드를 골라주세요.", | ||
| 396 | + "actions": [ | ||
| 397 | + { | ||
| 398 | + "type": "postback", | ||
| 399 | + "label": "신남", | ||
| 400 | + "data": "exciting" | ||
| 401 | + }, | ||
| 402 | + { | ||
| 403 | + "type": "postback", | ||
| 404 | + "label": "슬픔", | ||
| 405 | + "data": "sad" | ||
| 406 | + } | ||
| 407 | + ] | ||
| 408 | + } | ||
| 409 | + } | ||
| 410 | + ] | ||
| 411 | + } | ||
| 412 | + } | ||
| 413 | + ); | ||
| 414 | +} | ||
| 415 | + | ||
| 416 | +exports.exciting = function(replyToken,userId) | ||
| 417 | +{ | ||
| 418 | + console.log('플레이리스트-무드-신남'); | ||
| 419 | + sendplaylist(replyToken, userId, 201); | ||
| 420 | +} | ||
| 421 | + | ||
| 422 | +exports.sad = function(replyToken,userId) | ||
| 423 | +{ | ||
| 424 | + console.log('플레이리스트-무드-슬픔'); | ||
| 425 | + sendplaylist(replyToken, userId, 202); | ||
| 426 | +} | ||
| 427 | + | ||
| 428 | +exports.singer = function (replyToken) | ||
| 429 | +{ | ||
| 430 | + console.log("플레이리스트-가수"); | ||
| 431 | + request.post( | ||
| 432 | + { | ||
| 433 | + url: TARGET_URL, | ||
| 434 | + headers: | ||
| 435 | + { | ||
| 436 | + 'Authorization': `Bearer ${Info.TOKEN}` | ||
| 437 | + }, | ||
| 438 | + json: | ||
| 439 | + { | ||
| 440 | + "replyToken": replyToken, | ||
| 441 | + "messages": | ||
| 442 | + [ | ||
| 443 | + { | ||
| 444 | + "type": "template", | ||
| 445 | + "altText": "가수 선택창 입니다.", | ||
| 446 | + "template": { | ||
| 447 | + "type": "buttons", | ||
| 448 | + "title": "가수", | ||
| 449 | + "text": "원하시는 가수를 골라주세요.", | ||
| 450 | + "actions": [ | ||
| 451 | + { | ||
| 452 | + "type": "postback", | ||
| 453 | + "label": "블랙핑크", | ||
| 454 | + "data": "blackpink" | ||
| 455 | + }, | ||
| 456 | + { | ||
| 457 | + "type": "postback", | ||
| 458 | + "label": "아이유", | ||
| 459 | + "data": "iu" | ||
| 460 | + } | ||
| 461 | + , | ||
| 462 | + { | ||
| 463 | + "type": "postback", | ||
| 464 | + "label": "레드벨벳", | ||
| 465 | + "data": "redvelvet" | ||
| 466 | + } | ||
| 467 | + , | ||
| 468 | + { | ||
| 469 | + "type": "postback", | ||
| 470 | + "label": "트와이스", | ||
| 471 | + "data": "twice" | ||
| 472 | + } | ||
| 473 | + ] | ||
| 474 | + } | ||
| 475 | + } | ||
| 476 | + ] | ||
| 477 | + } | ||
| 478 | + } | ||
| 479 | + ); | ||
| 480 | +} | ||
| 481 | + | ||
| 482 | +exports.blackpink = function(replyToken,userId) | ||
| 483 | +{ | ||
| 484 | + console.log('플레이리스트-가수-블랙핑크'); | ||
| 485 | + sendplaylist(replyToken, userId, 301); | ||
| 486 | +} | ||
| 487 | + | ||
| 488 | +exports.iu = function(replyToken,userId) | ||
| 489 | +{ | ||
| 490 | + console.log('플레이리스트-가수-아이유'); | ||
| 491 | + sendplaylist(replyToken, userId, 302); | ||
| 492 | +} | ||
| 493 | + | ||
| 494 | +exports.redvelvet = function(replyToken,userId) | ||
| 495 | +{ | ||
| 496 | + console.log('플레이리스트-가수-레드벨벳'); | ||
| 497 | + sendplaylist(replyToken, userId, 303); | ||
| 498 | +} | ||
| 499 | + | ||
| 500 | +exports.twice = function(replyToken,userId) | ||
| 501 | +{ | ||
| 502 | + console.log('플레이리스트-가수-트와이스'); | ||
| 503 | + sendplaylist(replyToken, userId, 304); | ||
| 504 | +} | ||
| 505 | + | ||
| 506 | + | ||
| 507 | +exports.thumbnail_settings = function (replyToken) | ||
| 508 | +{ | ||
| 255 | 509 | ||
| 256 | - setting_Thumbnail[setting_userId.indexOf(userId)] = thumbnail_yes; | 510 | + console.log('썸네일 전송 설정'); |
| 257 | - //console.log("setting_userId.indexOf(userId) : after : " + setting_Thumbnail[setting_userId.indexOf(userId)]) | 511 | + request.post( |
| 258 | - | 512 | + { |
| 259 | - | 513 | + url: TARGET_URL, |
| 260 | - console.log(thumbnail_yes + "after"); | 514 | + headers: |
| 515 | + { | ||
| 516 | + 'Authorization': `Bearer ${Info.TOKEN}` | ||
| 517 | + }, | ||
| 518 | + json: | ||
| 519 | + { | ||
| 520 | + "replyToken": replyToken, | ||
| 521 | + "messages": | ||
| 522 | + [ | ||
| 523 | + { | ||
| 524 | + "type": "template", | ||
| 525 | + "altText": "설정메뉴입니다.", | ||
| 526 | + "template": { | ||
| 527 | + "type": "buttons", | ||
| 528 | + "title": "썸네일 전송 여부 변경", | ||
| 529 | + "text": "아래 항목을 골라주세요.", | ||
| 530 | + "actions": [ | ||
| 531 | + { | ||
| 532 | + "type": "postback", | ||
| 533 | + "label": "썸네일 전송 O", | ||
| 534 | + "data": "enablethumbnail" | ||
| 535 | + }, | ||
| 536 | + { | ||
| 537 | + "type": "postback", | ||
| 538 | + "label": "썸네일 전송 X", | ||
| 539 | + "data": "unablethumbnail" | ||
| 540 | + }, | ||
| 541 | + ] | ||
| 542 | + } | ||
| 543 | + } | ||
| 544 | + ] | ||
| 545 | + } | ||
| 546 | + } | ||
| 261 | 547 | ||
| 262 | - console.log("111111"); | 548 | + ); |
| 549 | +} | ||
| 263 | 550 | ||
| 551 | +exports.enablethumbnail = function(replyToken,userId) | ||
| 552 | +{ | ||
| 553 | + console.log('썸네일 활성화 됨.'); | ||
| 554 | + setting_Thumbnail[setting_userId.indexOf(userId)]=1; | ||
| 555 | + request.post( | ||
| 556 | + { | ||
| 557 | + url: TARGET_URL, | ||
| 558 | + headers: | ||
| 559 | + { | ||
| 560 | + 'Authorization': `Bearer ${Info.TOKEN}` | ||
| 561 | + }, | ||
| 562 | + json: | ||
| 563 | + { | ||
| 564 | + "replyToken": replyToken, | ||
| 565 | + "messages": | ||
| 566 | + [ | ||
| 567 | + { | ||
| 568 | + "type": "text", | ||
| 569 | + "text": "이제 썸네일이 전송됩니다!" | ||
| 570 | + } | ||
| 571 | + ] | ||
| 572 | + } | ||
| 573 | + } | ||
| 574 | + ); | ||
| 264 | } | 575 | } |
| 576 | +exports.unablethumbnail = function(replyToken,userId) | ||
| 577 | +{ | ||
| 578 | + console.log('썸네일 비활성화 됨.'); | ||
| 579 | + setting_Thumbnail[setting_userId.indexOf(userId)]=0; | ||
| 580 | + request.post( | ||
| 581 | + { | ||
| 582 | + url: TARGET_URL, | ||
| 583 | + headers: | ||
| 584 | + { | ||
| 585 | + 'Authorization': `Bearer ${Info.TOKEN}` | ||
| 586 | + }, | ||
| 587 | + json: | ||
| 588 | + { | ||
| 589 | + "replyToken": replyToken, | ||
| 590 | + "messages": | ||
| 591 | + [ | ||
| 592 | + { | ||
| 593 | + "type": "text", | ||
| 594 | + "text": "이제 썸네일이 전송되지 않습니다!" | ||
| 595 | + } | ||
| 596 | + ] | ||
| 597 | + } | ||
| 598 | + } | ||
| 599 | + ); | ||
| 600 | +} | ||
| 601 | + | ||
| 602 | + | ||
| 603 | + | ||
| 604 | + | ||
| 605 | + | ||
| 606 | + | ||
| 265 | 607 | ||
| 266 | exports.amount_settings = function (replyToken, userId) | 608 | exports.amount_settings = function (replyToken, userId) |
| 267 | { | 609 | { |
| ... | @@ -271,12 +613,103 @@ exports.amount_settings = function (replyToken, userId) | ... | @@ -271,12 +613,103 @@ exports.amount_settings = function (replyToken, userId) |
| 271 | // 이거는 단순하게 숫자를 입력받으면 될 것 같습니다. 다만 1,2,3,4,5,6,7,8,9,10 의 응답만 받도록 해주셔야 합니다. (예외처리 필수) | 613 | // 이거는 단순하게 숫자를 입력받으면 될 것 같습니다. 다만 1,2,3,4,5,6,7,8,9,10 의 응답만 받도록 해주셔야 합니다. (예외처리 필수) |
| 272 | } | 614 | } |
| 273 | 615 | ||
| 274 | -exports.address_settings = function (replyToken, userId) | 616 | + |
| 617 | + | ||
| 618 | + | ||
| 619 | + | ||
| 620 | + | ||
| 621 | +exports.address_settings = function (replyToken,) | ||
| 622 | +{ | ||
| 623 | + console.log('유튜브 주소 전송 설정'); | ||
| 624 | + request.post( | ||
| 625 | + { | ||
| 626 | + url: TARGET_URL, | ||
| 627 | + headers: | ||
| 628 | + { | ||
| 629 | + 'Authorization': `Bearer ${Info.TOKEN}` | ||
| 630 | + }, | ||
| 631 | + json: | ||
| 632 | + { | ||
| 633 | + "replyToken": replyToken, | ||
| 634 | + "messages": | ||
| 635 | + [ | ||
| 636 | + { | ||
| 637 | + "type": "template", | ||
| 638 | + "altText": "설정메뉴입니다.", | ||
| 639 | + "template": { | ||
| 640 | + "type": "buttons", | ||
| 641 | + "title": "유튜브 주소 전송 여부 변경", | ||
| 642 | + "text": "아래 항목을 골라주세요.", | ||
| 643 | + "actions": [ | ||
| 644 | + { | ||
| 645 | + "type": "postback", | ||
| 646 | + "label": "유튜브 주소 전송 O", | ||
| 647 | + "data": "enableaddress" | ||
| 648 | + }, | ||
| 649 | + { | ||
| 650 | + "type": "postback", | ||
| 651 | + "label": "유튜브 주소 전송 X", | ||
| 652 | + "data": "unableaddress" | ||
| 653 | + }, | ||
| 654 | + ] | ||
| 655 | + } | ||
| 656 | + } | ||
| 657 | + ] | ||
| 658 | + } | ||
| 659 | + } | ||
| 660 | + | ||
| 661 | + ); | ||
| 662 | +} | ||
| 663 | + | ||
| 664 | +exports.enableaddress = function(replyToken,userId) | ||
| 665 | +{ | ||
| 666 | + console.log('주소 활성화 됨.'); | ||
| 667 | + setting_SendAddress[setting_userId.indexOf(userId)]=1; | ||
| 668 | + request.post( | ||
| 669 | + { | ||
| 670 | + url: TARGET_URL, | ||
| 671 | + headers: | ||
| 672 | + { | ||
| 673 | + 'Authorization': `Bearer ${Info.TOKEN}` | ||
| 674 | + }, | ||
| 675 | + json: | ||
| 676 | + { | ||
| 677 | + "replyToken": replyToken, | ||
| 678 | + "messages": | ||
| 679 | + [ | ||
| 680 | + { | ||
| 681 | + "type": "text", | ||
| 682 | + "text": "이제 유튜브 주소가 전송됩니다!" | ||
| 683 | + } | ||
| 684 | + ] | ||
| 685 | + } | ||
| 686 | + } | ||
| 687 | + ); | ||
| 688 | +} | ||
| 689 | +exports.unableaddress = function(replyToken,userId) | ||
| 275 | { | 690 | { |
| 276 | - console.log('유튜브 주소 출력 설정'); | 691 | + console.log('주소 비활성화 됨.'); |
| 277 | - // 여기서 유튜브 주소를 출력할지 말지 물어보고나서, 웹훅의 응답을 받아 그 응답에 따라서 | 692 | + setting_SendAddress[setting_userId.indexOf(userId)]=0; |
| 278 | - // setting_SendAddress[setting_userId.indexOf(userId)] 의 값를 수정합니다. | 693 | + request.post( |
| 279 | - // https://developers.line.biz/en/reference/messaging-api/#template-messages 의 confirm 를 참고해서 응용하시면 될 것 같습니다. | 694 | + { |
| 695 | + url: TARGET_URL, | ||
| 696 | + headers: | ||
| 697 | + { | ||
| 698 | + 'Authorization': `Bearer ${Info.TOKEN}` | ||
| 699 | + }, | ||
| 700 | + json: | ||
| 701 | + { | ||
| 702 | + "replyToken": replyToken, | ||
| 703 | + "messages": | ||
| 704 | + [ | ||
| 705 | + { | ||
| 706 | + "type": "text", | ||
| 707 | + "text": "이제 유튜브 주소가 전송되지 않습니다!" | ||
| 708 | + } | ||
| 709 | + ] | ||
| 710 | + } | ||
| 711 | + } | ||
| 712 | + ); | ||
| 280 | } | 713 | } |
| 281 | 714 | ||
| 282 | exports.check = function (message, replyToken, userId) { | 715 | exports.check = function (message, replyToken, userId) { |
| ... | @@ -331,6 +764,10 @@ exports.check = function (message, replyToken, userId) { | ... | @@ -331,6 +764,10 @@ exports.check = function (message, replyToken, userId) { |
| 331 | choose = 304; | 764 | choose = 304; |
| 332 | choice = ids.all_ids[choose] | 765 | choice = ids.all_ids[choose] |
| 333 | break; | 766 | break; |
| 767 | + case "플레이리스트": | ||
| 768 | + choose = 100; | ||
| 769 | + choice = 0; | ||
| 770 | + break; | ||
| 334 | case "도움말": | 771 | case "도움말": |
| 335 | choose = 001; | 772 | choose = 001; |
| 336 | choice = 0; | 773 | choice = 0; |
| ... | @@ -417,14 +854,16 @@ exports.check = function (message, replyToken, userId) { | ... | @@ -417,14 +854,16 @@ exports.check = function (message, replyToken, userId) { |
| 417 | +"\n"+"- '플레이리스트'를 입력하면 분류에 따라 엄선한 음악을 추천드립니다!" | 854 | +"\n"+"- '플레이리스트'를 입력하면 분류에 따라 엄선한 음악을 추천드립니다!" |
| 418 | +"\n"+"- '설정'을 입력하면 썸네일 출력 여부, 추천 음악 개수(1~10), 유튜브 주소 전송 여부를 설정하실 수 있습니다." | 855 | +"\n"+"- '설정'을 입력하면 썸네일 출력 여부, 추천 음악 개수(1~10), 유튜브 주소 전송 여부를 설정하실 수 있습니다." |
| 419 | +"\n"+"- 이 도움말을 다시 보고 싶으시다면 '도움말'을 입력하시면 됩니다! 음악과 함께 좋은 하루 보내세요."; | 856 | +"\n"+"- 이 도움말을 다시 보고 싶으시다면 '도움말'을 입력하시면 됩니다! 음악과 함께 좋은 하루 보내세요."; |
| 420 | - SEND_TEXT(replyToken,sendMessage); | 857 | + HELP(replyToken,sendMessage); |
| 421 | } | 858 | } |
| 422 | else if (choose == 002) { // 설정 | 859 | else if (choose == 002) { // 설정 |
| 423 | - sendMessage = "설정 예시"; | 860 | + SETTINGS(replyToken); |
| 424 | - SETTINGS(replyToken,sendMessage); | ||
| 425 | } | 861 | } |
| 426 | 862 | ||
| 427 | else { //플레이리스트 | 863 | else { //플레이리스트 |
| 864 | + | ||
| 865 | + PLAYLIST(replyToken); | ||
| 866 | + /* | ||
| 428 | service.playlistItems.list( | 867 | service.playlistItems.list( |
| 429 | { | 868 | { |
| 430 | key: Info.YoutubeKey, | 869 | key: Info.YoutubeKey, |
| ... | @@ -444,5 +883,6 @@ exports.check = function (message, replyToken, userId) { | ... | @@ -444,5 +883,6 @@ exports.check = function (message, replyToken, userId) { |
| 444 | SEND_LIST(replyToken,response,choice,setting_Thumbnail[setting_userId.indexOf(userId)],setting_SendAmount[setting_userId.indexOf(userId)],setting_SendAddress[setting_userId.indexOf(userId)]); | 883 | SEND_LIST(replyToken,response,choice,setting_Thumbnail[setting_userId.indexOf(userId)],setting_SendAmount[setting_userId.indexOf(userId)],setting_SendAddress[setting_userId.indexOf(userId)]); |
| 445 | } | 884 | } |
| 446 | ) | 885 | ) |
| 886 | + */ | ||
| 447 | } | 887 | } |
| 448 | } | 888 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -11,7 +11,6 @@ var app = express(); | ... | @@ -11,7 +11,6 @@ var app = express(); |
| 11 | app.use(bodyParser.json()); | 11 | app.use(bodyParser.json()); |
| 12 | var songs = require('./check'); | 12 | var songs = require('./check'); |
| 13 | var thumbnail = 1;// 썸네일 출력 여부 (1:출력/0:미출력/기본값:1) | 13 | var thumbnail = 1;// 썸네일 출력 여부 (1:출력/0:미출력/기본값:1) |
| 14 | -var post2 = require('./post2'); | ||
| 15 | var thumbnail_yes; | 14 | var thumbnail_yes; |
| 16 | app.post('/hook', function (req, res) { | 15 | app.post('/hook', function (req, res) { |
| 17 | 16 | ||
| ... | @@ -20,90 +19,91 @@ app.post('/hook', function (req, res) { | ... | @@ -20,90 +19,91 @@ app.post('/hook', function (req, res) { |
| 20 | 19 | ||
| 21 | // request log | 20 | // request log |
| 22 | console.log('======================', new Date(), '======================'); | 21 | console.log('======================', new Date(), '======================'); |
| 23 | - console.log(eventObj); | 22 | + |
| 24 | if (eventObj.type=="message") // 일반 메시지일때 | 23 | if (eventObj.type=="message") // 일반 메시지일때 |
| 25 | react(eventObj.replyToken, message.text,eventObj.source.userId); | 24 | react(eventObj.replyToken, message.text,eventObj.source.userId); |
| 26 | - else if (eventObj.postback.data=="썸네일") //설정에서 썸네일 설정버튼을 눌렀을때 | 25 | + |
| 27 | - { | 26 | + else |
| 28 | - console.log('썸네일 출력 설정'); | 27 | + switch (eventObj.postback.data) { |
| 29 | - request.post( | 28 | + case "썸네일": //설정에서 썸네일 설정버튼을 눌렀을때 |
| 30 | - { | 29 | + songs.thumbnail_settings(eventObj.replyToken); |
| 31 | - url: TARGET_URL, | 30 | + break; |
| 32 | - headers: | 31 | + case "enablethumbnail": //설정 -> 썸네일 설정 -> 활성화 |
| 33 | - { | 32 | + songs.enablethumbnail(eventObj.replyToken,eventObj.source.userId); |
| 34 | - 'Authorization': `Bearer ${Info.TOKEN}` | 33 | + break; |
| 35 | - }, | 34 | + case "unablethumbnail": //설정 -> 썸네일 설정 -> 비활성화 |
| 36 | - json: | 35 | + songs.unablethumbnail(eventObj.replyToken,eventObj.source.userId); |
| 37 | - { | 36 | + break; |
| 38 | - "replyToken": eventObj.replyToken, | 37 | + |
| 39 | - "messages": | 38 | + |
| 40 | - [ | ||
| 41 | - { | ||
| 42 | - "type": "text", | ||
| 43 | - "text": sendMessage | ||
| 44 | - }, | ||
| 45 | - { | ||
| 46 | - "type": "template", | ||
| 47 | - "altText": "설정메뉴입니다.", | ||
| 48 | - "template": { | ||
| 49 | - "type": "buttons", | ||
| 50 | - "title": "썸네일 출력 여부 변경", | ||
| 51 | - "text": "아래 항목을 골라주세요.", | ||
| 52 | - "actions": [ | ||
| 53 | - { | ||
| 54 | - "type": "postback", | ||
| 55 | - "label": "썸네일 출력 O", | ||
| 56 | - "data": thumbnail_yes = 1 | ||
| 57 | - }, | ||
| 58 | - { | ||
| 59 | - "type": "postback", | ||
| 60 | - "label": "썸네일 출력 X", | ||
| 61 | - "data": thumbnail_yes = 0 | ||
| 62 | - }, | ||
| 63 | - { | ||
| 64 | - "type": "postback", | ||
| 65 | - "label": "뒤로가기", | ||
| 66 | - "data": thumbnail_yes = -1 | ||
| 67 | - } | ||
| 68 | - ] | ||
| 69 | - } | ||
| 70 | - } | ||
| 71 | - ] | ||
| 72 | - } | ||
| 73 | - } | ||
| 74 | - | ||
| 75 | - ); | ||
| 76 | - | ||
| 77 | - | ||
| 78 | - } | ||
| 79 | - else if (eventObj.postback.data=="개수") //설정에서 출력 개수 설정버튼을 눌렀을때 | ||
| 80 | - songs.amount_settings(eventObj.replyToken,eventObj.source.userId); | ||
| 81 | 39 | ||
| 82 | - //else if (출력 개수 설정 버튼을 누르고 거기서 응답이 들어왔을때) | ||
| 83 | 40 | ||
| 84 | - else if (eventObj.postback.data=="주소") //설정에서 유튜브 주소 설정버튼을 눌렀을때 | 41 | + case "개수": //설정에서 출력 개수 설정버튼을 눌렀을때 |
| 85 | - songs.address_settings(eventObj.replyToken,eventObj.source.userId); | 42 | + songs.amount_settings(eventObj.replyToken,eventObj.source.userId); |
| 43 | + break; | ||
| 86 | 44 | ||
| 87 | - //else if (유튜브 주소 설정 버튼을 누르고 거기서 응답이 들어왔을때) | ||
| 88 | 45 | ||
| 89 | - //★★else if (플레이리스트를 입력했을때 뜬 버튼에서 장르를 눌렀을때) | ||
| 90 | 46 | ||
| 91 | - //★★else if (플레이리스트를 입력했을때 뜬 버튼에서 무드를 눌렀을때) | ||
| 92 | 47 | ||
| 93 | - //★★else if (플레이리스트를 입력했을때 뜬 버튼에서 가수를 눌렀을때) | 48 | + case "주소": //설정에서 유튜브 주소 설정버튼을 눌렀을때 |
| 94 | - thumbnail_yes = postback.data; | 49 | + songs.address_settings(eventObj.replyToken); |
| 95 | - console.log("thumbnail_yes : "+thumbnail_yes); | 50 | + break; |
| 96 | - if (thumbnail_yes === 1 || thumbnail_yes === 0) { | 51 | + case "enableaddress": //설정 -> 주소 설정 -> 활성화 |
| 97 | - songs.thumbnail_settings(thumbnail_yes, eventObj.source.userId); | 52 | + songs.enableaddress(eventObj.replyToken,eventObj.source.userId); |
| 53 | + break; | ||
| 54 | + case "unableaddress": //설정 -> 주소 설정 -> 비활성화 | ||
| 55 | + songs.unableaddress(eventObj.replyToken,eventObj.source.userId); | ||
| 56 | + break; | ||
| 98 | 57 | ||
| 99 | - } | ||
| 100 | - else if (thumbnail_yes === -1) console.log("뒤로가기"); | ||
| 101 | - else console.log("NULL값 입력임"); | ||
| 102 | 58 | ||
| 59 | + case "genre": // 플레이리스트 -> 장르 | ||
| 60 | + songs.genre(eventObj.replyToken); | ||
| 61 | + break; | ||
| 62 | + | ||
| 63 | + case "hiphop": // 플레이리스트 -> 장르 -> 힙합 | ||
| 64 | + songs.hiphop(eventObj.replyToken,eventObj.source.userId); | ||
| 65 | + break; | ||
| 66 | + case "piano": // 플레이리스트 -> 장르 -> 피아노 | ||
| 67 | + songs.piano(eventObj.replyToken,eventObj.source.userId); | ||
| 68 | + break; | ||
| 69 | + case "pop": // 플레이리스트 -> 장르 -> 팝 | ||
| 70 | + songs.pop(eventObj.replyToken,eventObj.source.userId); | ||
| 71 | + break; | ||
| 72 | + | ||
| 73 | + case "mood": // 플레이리스트 -> 무드 | ||
| 74 | + songs.mood(eventObj.replyToken); | ||
| 75 | + break; | ||
| 76 | + | ||
| 77 | + case "exciting": // 플레이리스트 -> 무드 -> 신남 | ||
| 78 | + songs.exciting(eventObj.replyToken,eventObj.source.userId); | ||
| 79 | + break; | ||
| 80 | + case "sad": // 플레이리스트 -> 무드 -> 슬픔 | ||
| 81 | + songs.sad(eventObj.replyToken,eventObj.source.userId); | ||
| 82 | + break; | ||
| 83 | + | ||
| 84 | + case "singer": // 플레이리스트 -> 가수 | ||
| 85 | + songs.singer(eventObj.replyToken); | ||
| 86 | + break; | ||
| 87 | + | ||
| 88 | + case "blackpink": // 플레이리스트 -> 가수 -> 블랙핑크 | ||
| 89 | + songs.blackpink(eventObj.replyToken,eventObj.source.userId); | ||
| 90 | + break; | ||
| 91 | + case "iu": // 플레이리스트 -> 가수 -> 아이유 | ||
| 92 | + songs.iu(eventObj.replyToken,eventObj.source.userId); | ||
| 93 | + break; | ||
| 94 | + case "redvelvet": // 플레이리스트 -> 가수 -> 레드벨벳 | ||
| 95 | + songs.redvelvet(eventObj.replyToken,eventObj.source.userId); | ||
| 96 | + break; | ||
| 97 | + case "twice": // 플레이리스트 -> 가수 -> 트와이스 | ||
| 98 | + songs.twice(eventObj.replyToken,eventObj.source.userId); | ||
| 99 | + break; | ||
| 100 | + | ||
| 101 | + | ||
| 102 | + //else if (출력 개수 설정 버튼을 누르고 거기서 응답이 들어왔을때) | ||
| 103 | + | ||
| 104 | + | ||
| 105 | +}; | ||
| 103 | 106 | ||
| 104 | -console.log("11"); | ||
| 105 | - res.sendStatus(200); | ||
| 106 | -}); | ||
| 107 | function react(replyToken, message,userId) { | 107 | function react(replyToken, message,userId) { |
| 108 | 108 | ||
| 109 | request.post( | 109 | request.post( | ... | ... |
-
Please register or login to post a comment