Closed devminho5 closed 1 month ago
테스트 코드가 잘못된 것 같습니다. DBDBDEEP
은 responseFix
의 마지막 파라미터인데, 첫 번째 인자에 '테스트'
를 넘겨줬기 때문에 당연히 작동하지 않습니다.
DBListener
가 카카오링크가 아닌 단순 응답을 사용하는 경우에도 작동하는지responseFix
를 올바르게 호출하는 코드로 수정하였을 때 client.sendLink
가 작동하는지확인해 보시면 정확한 원인을 확인할 수 있을 것 같아요.
2. responseFix를 직접 호출하는 경우
테스트 코드가 잘못된 것 같습니다.
DBDBDEEP
은responseFix
의 마지막 파라미터인데, 첫 번째 인자에'테스트'
를 넘겨줬기 때문에 당연히 작동하지 않습니다.
DBListener
가 카카오링크가 아닌 단순 응답을 사용하는 경우에도 작동하는지responseFix
를 올바르게 호출하는 코드로 수정하였을 때client.sendLink
가 작동하는지확인해 보시면 정확한 원인을 확인할 수 있을 것 같아요.
아래와 같은 코드로 다시금 테스트해보았지만, 여전히 작동하지 않습니다 :(
DBListener.on('message', (chat, channel) => {
if (chat.text.startsWith('!테스트')) {
let sendKakaoLink = Array(11).fill(null);
sendKakaoLink.push('테스트');
responseFix.apply(null, sendKakaoLink);
}
});
function responseFix(room, roomId, msg, msgId, sender, isGroupChat, replier, imageDB, packageName, userId, id2, DBDBDEEP) {
if (DBDBDEEP === '테스트') {
client.sendLink(room, {
templateId: 000000, // your template id
templateArgs: {
},
}, 'custom').awaitResult();
}
}
templateId는 실제 Kakao Developers에 등록된 템플릿 ID와 templateArgs도 그에 맞게 적절히 수정했습니다. 사용한 카카오링크 모듈은 https://github.com/naijun0403/kakaolink/releases/tag/2.0.0-beta05 (현재 시점 가장 최신 버전) 입니다.
트러블 슈팅
https://github.com/naijun0403/kakaolink 를 기반으로 한 카카오링크 전송 시,
1. DBListener 안에서 직접 전송
2. DBListener 안에서 response로 임의의 값을 보내고 response에서 해당 값 수신 시 카카오링크 전송
모두 시도해보았지만, 작동하지 않습니다. DBManager와 카카오링크 모듈 모두 너무도 감사히 잘 쓰고 있습니다만, 두 가지 모듈이 서로 호환되면 더 기쁠 것 같은 마음에 글 올리게 되었습니다.
구동 환경
디버깅 정보
없음. 에러가 발생하여 스크립트가 꺼지거나 하지 않고, 해당 부분만 코드 자체에서 무시되어 실행됨.