{"code":"ETELEGRAM","message":"ETELEGRAM: 409 Conflict: terminated by other getUpdates request; make sure that only one bot instance"}
409지만 실제로 컨플릭트가 여러군데서 발생하니 문구를 잘 보도록 하자.
Conflict: terminated by other getUpdates request; make sure that only one bot instance
기존에 있던 봇 코드를 서버를 올렸는데, 왜인지 이러한 오류가 계속 발생한다.
아마도 polling부분때문에 발생하는 오류 같은데, 이를 해결하기위해 방법을 찾아봤으나 없었다.
쉽게 찾은 방법이 있긴한데, process.exit()로 실제 돌아가는 회사 서버를 끌수도 있어서 쓸수가 없었다.
어떻게 해야하나 했는데, 그냥 api에서 설명서로 있더라.
잘 안보여서 헤맸던 문제.
const TelegramBot = require('node-telegram-bot-api');
const channelId = '챗방id';
let token = '마! 토큰이다! 마!';
const bot = new TelegramBot(token, {polling: true});
async function send_telbot(message) {
bot.sendMessage(channelId, message)
.then(() => {
bot.stopPolling(); <-api문서에는 전역이라해서 속았다.
console.log('꺼졌다!');
})
.catch((e)=> {
console.log('텔레그램 봇 오류 : '+ e);
})
};
send_telbot('꺼졌니?');
공식문서를 보면 telegrambot.polling()이렇게 적혀있고 global(전역)으로 적혀있어,
TelegramBot.stopPolling()했으나 오류를 내뿜더라.
그래서 이리저리해보다 bot에서 시작했으니 bot을꺼야겠다 싶어 bot.stopPolling하니꺼짐...
하.... 일단 해결한것 같은데, 계속 써보고 문제점 있는지 찾아봐야지
npm 문서랑 github 문서가 좀 다르더라;;; option부분이 기재되고 아니고 차이가 있던...
stopPolling부분을 보면 이해가 된다.
github.com/yagop/node-telegram-bot-api/blob/release/doc/api.md
www.npmjs.com/package/node-telegram-bot-api/v/0.25.0?activeTab=readme#TelegramBot+stopPolling
++ 5/21 추가
해당 부분 해결이 안되었습니다. 아마도 polling때문에 그런 듯 싶은데, 이를 한번만 확인하게 하는 것을 써야 하는 것 같습니다. 아니면 아예 꺼버리거나요
++ 9/10 추가
그냥 polling 옵션을 제거했습니다.
그러면 작동 되는 것 같습니다. 주기적으로 봐야할 것 같아요
'취업 > PHP' 카테고리의 다른 글
[PHP]문자열 '*', 별표로 치환하기 (0) | 2021.06.14 |
---|---|
php 제이쿼리 - ajax 이후 아무리해도 클릭먹통 증상 (0) | 2021.05.31 |
node - 텔레그램 봇 작성 (0) | 2021.04.30 |
php코드 자바스크립트를 통한 실시간 시간 바꾸기 (0) | 2021.04.29 |
php 텔레그램 텔봇 만들기(feat.유투브 10분만에 텔레그램 봇 만들기) (0) | 2021.04.29 |