ä»æ¥ã¯å»æã䜿ã£ãŠçµã¿ç«ãŠãŠãããŸã https://api.telegram.org/
ã ããã§ãããç§ãã¡ã¯ããŸãã - ãããããããã çµå±ã®ãšãããç§ãã¡ã®ããã°ã«ã¯ãããããã®ãå
¥ã£ãŠããŸãã Webhook â 圌ãã®ååãåŸãŠãç§ãã¡ã¯ç¹å®ã®ã¢ãã¬ã¹ã«ãªã¯ãšã¹ããè¡ãã®ã§ã¯ãªããåã«ç§ãã¡ãžã®ãªã¯ãšã¹ãã«å¯Ÿããå¿çãšããŠãªã¯ãšã¹ããéä¿¡ããã ãã§ãã ã€ãŸãããªãããµã®ããã«ã質åã«ã¯è³ªåã§çããã®ã§ãã ãããçç±ã§ã é»å ±API ç§ãã¡ã®ã³ãŒãã«ã¯çŸããŸããã
å
責äºé
ãã®èšäºã§èšåãããŠããæ¿åºçµç¹ã®ååã¯æ¶ç©ºã®ãã®ã§ãããå®éã®çµç¹ã®ååãšäžèŽããå¯èœæ§ãããã®ã¯å¶ç¶ã§ãã
ããã§ãè³¢ãæèãæäŸããŠãããããããäœæããŸãã ãŸãã«åçã®éãã§ã:
å®éã«è©ŠããŠã¿ãããšãã§ããŸããååã¯æ¬¡ã®ãšããã§ãã @SmartThoughtBotã ãã¿ã³ã«æ°ã¥ããŸãã ãã¢ãªã¹ã®ã¹ãã«ã? ããã¯ãããããåãååã®ãããã®äžçš®ã®ãã³ã³ãããªã³ãã§ããããã§ãã ã¢ãªã¹ã®ã¹ãã«ãã€ãŸããšåãæ©èœãå®è¡ããŸã ã¢ãªã¹ã®ã¹ãã« ãããŠããäºãã宣äŒãåãããšã§å¹³åçã«å
±åã§ããå¯èœæ§ããããŸãã äœææ¹æ³ã«ã€ã㊠ã¹ãã« è³¢ãæè èšäºã«èšèŒãããŠãã
ãããã®äœæ
ãã®ãã¥ãŒããªã¢ã«ãããã¹ãŠã®äººã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã åå¿è ã®ããããã«ããŒãã ãããã£ãŠããã®ã»ã¯ã·ã§ã³ã§ã¯ãäžè¬çãªäœææ¹æ³ã«ã€ããŠè©³ãã説æããŸãã Telegramãããã§ãã ãã®æ å ±ãäžèŠãªå Žåã¯ã次ã®ã»ã¯ã·ã§ã³ã«é²ãã§ãã ããã
ã¢ããªã±ãŒã·ã§ã³ãéã ãã¬ã¬ã©ã ããã¹ãŠã®ãããã®ç¶ãšåŒãã§ã¿ãŸãããïŒåœŒãã¯äººéãšåãããã«ãã¹ãŠãæã£ãŠããŸãïŒ - @BotFather - ãããŠãŸãã圌㫠/help ã³ãã³ããäžããŠãç§ãã¡ãã§ããããšã®èšæ¶ããªãã¬ãã·ã¥ãããŸãã ä»ãç§ãã¡ã¯ããŒã ã«èå³ãæã£ãŠããŸã / newbot.
ããã§èª¬æãããããã¯ãã§ã«äœæãããŠããããããã¢ã³ã¹ãã¬ãŒã·ã§ã³ã®ç®çã§ãå¥ã®ããããçæéäœæããŸã (ãã®åŸãåé€ããŸã)ã 圌ã«é»è©±ããŸã ãã¢ãããããã åå (ãŠãŒã¶å) ãã¹ãŠã®é»å ±ãããã¯æ¬¡ã®åèªã§çµããå¿
èŠããããŸã ãããããšãã°ã次ã®ããã«ãªããŸãã ãã€ã¯ãŒã«ããã ãŸã㯠my_cool_bot - ããã¯ãããçšã§ãã ãã ããæåã«ãããã«ååãä»ããŸã (åïŒ - ãããŠããã¯äººã
ã®ããã®ãã®ã§ãã ååã¯ã©ã®èšèªã§ã䜿çšã§ããã¹ããŒã¹ãå«ããããšãã§ããåèªã§çµããå¿
èŠã¯ãããŸããã ããããäžæã§ããå¿
èŠãããããŸããã ãã®äŸã§ã¯ããã®ããããåŒã³åºããŸãã ãã¢ããã«.
次ã«ããããã®ååãéžæããŸã (ãŠãŒã¶åããããçšã®ãã®ïŒã 圌ã«é»è©±ããŸããã ãã¢ãããããã ãããã®ååã«é¢é£ãããã¹ãŠ (åïŒåœŒã®ååãšã¯ãŸã£ããé¢ä¿ãããŸãã - ãŠãŒã¶å ïŒãŸãã¯åœãŠã¯ãŸããŸããããŸã£ããéã§ãïŒã äžæã®ãããåã®äœæã«æåããããã¹ã¯ãªãŒã³ã·ã§ããã«èµ€ãç¢å°ã§ç€ºãããŠããããŒã¯ã³ãã³ããŒããŠä¿åããå¿
èŠããããŸã (å³éã«æ³šæããŠãã ãã)ã ãã®å©ããåããŠãåŸã§ãã®èµ·æºã確ç«ããŸã Telegram'ç§ãã¡ã®ãžã®Webhook ã€ã³ããã¯ã¹æ©èœ.
次ã«ããã¹ãŠã®ãããã®ç¶ã«ã³ãã³ããäžããŠã¿ãŸãããã /ãã€ããããã¯ãªãã¯ãããšãäœæãããã¹ãŠã®ãããã®ãªã¹ãã衚瀺ãããŸãã çŒãããŠã®ãããã¯ä»ã®ãšããæŸã£ãŠãããŠãã ãã ãã¢ããã« (ããã¯ãããã®äœææ¹æ³ã瀺ãããã«äœæãããŸããããä»æ¥ã¯ä»ã®ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ç®çã«ã䜿çšããŸã)ãããããèŠãŠã¿ãŸããã è³¢ãæè (@SmartThoughtBotïŒã ãããã®ãªã¹ãã§ãã®ååã®ãã¿ã³ãã¯ãªãã¯ããŸãã
ããã§ããããæ§æã§ããŸãã ãã¿ã³ãæŒãããšã§ ç·šé... XNUMX ã€ãŸãã¯å¥ã®ãªãã·ã§ã³ã®ç·šéã«é²ã¿ãŸãã ããšãã°ããã¿ã³ãã¯ãªãã¯ãããšã ååã®ç·šé 代ããã«ãããã®ååãå€æŽã§ããŸã è³¢ãæèæžã ã¯ã¬ã€ãžãŒãªã¢ã€ãã¢. ããããã㯠- ããã¯ãããã®ã¢ãã¿ãŒã§ããå°ãªããšã 150 150 X PX. 説æ â ããã¯ã質åã«å¯ŸããçããšããŠãããããåããŠèµ·åãããšãã«ãŠãŒã¶ãŒã«è¡šç€ºãããçã説æã§ãã ãã®ãããã¯äœãã§ããã®ã§ãããã? ç§ãã¡ã«ã€ããŠ
â ããã«çã説æãããããžã®ãªã³ã¯ãšãšãã«éä¿¡ãããŸã (https://t.me/SmartThoughtsBot
)ããŸãã¯ããã«é¢ããæ
å ±ã衚瀺ãããšãã
ããšã¯ã³ãã³ããèšå®ããã ãã§ãã ãããè¡ãã«ã¯ããã¿ã³ãæŒããŸã ç·šéã³ãã³ãã ãŠãŒã¶ãŒã®å®è·µãæšæºåããã«ã¯ Telegram åžžã« XNUMX ã€ã®ã³ãã³ãã䜿çšããããšããå§ãããŸãã /éå§ Ðž /å©ããŠãããã«èšå®ãå¿
èŠãªå Žåã¯ãè¿œå ã® /settings ã³ãã³ãã䜿çšããŸãã ç§ãã¡ã®ãããã¯ããŒã«ã®ããã«ã·ã³ãã«ãªã®ã§ããŸã èšå®ã¯å¿
èŠãããŸããã æåã® XNUMX ã€ã®ã³ãã³ããäœæããã³ãŒãã§åŠçããŸãã ãŠãŒã¶ãŒãå
¥åãã£ãŒã«ãã«ã¹ã©ãã·ã¥ (ã¹ã©ãã·ã¥èšå·: /) ãå
¥åãããšãã³ãã³ãã®ãªã¹ãã衚瀺ãããç°¡åã«éžæã§ããããã«ãªããŸãã ãã¹ãŠã¯åçã®ãšããã§ããå·ŠåŽ - ç¶èŠªããããéããŠã³ãã³ããã€ã³ã¹ããŒã«ããŸãã å³åŽã§ã¯ããããã®ã³ãã³ãã¯ãããã®ãŠãŒã¶ãŒã«ãã§ã«äœ¿çšå¯èœã§ãã
ã€ã³ããã¯ã¹æ©èœ
ããããäœæãããã®ã§ã次ã®ããŒãžã«é²ã¿ãŸãã Yandex.Cloudãããã®ã³ãŒããå®è¡ããé¢æ°ãäœæããŸãã äžç·ã«åããããšããªãå Žå Yandex.Cloud è³æãèªã
ããã§ã³ã³ãœãŒã«ã§ Yandex.Cloud å·ŠåŽã®ããã²ãŒã·ã§ã³ ã¡ãã¥ãŒã§é ç®ãéžæããŸã ã¯ã©ãŠãæ©èœãéžæãã ãã¿ã³ãæŒããŸã é¢æ°ãäœæããã ããã«ååãšç°¡åãªèª¬æãä»ããŸãã
ãã¿ã³ãæŒããåŸ äœããŸã æ°ç§åŸãæ°ããé¢æ°ããã¹ãŠã®é¢æ°ã®ãªã¹ãã«è¡šç€ºãããŸãã 圌女ã®ååãã¯ãªãã¯ãããšããã®ããŒãžã«ç§»åããŸã ÐÐ±Ð·ÐŸÑ ç§ãã¡ã®æ©èœã ããã§æå¹ã«ããå¿
èŠããããŸã(On) ã¹ã€ãã å
Œ
±æ©èœå€éšããã¢ã¯ã»ã¹ã§ããããã«ããŸãïŒ Yandex.Cloud)äžçã®ããããŠãã£ãŒã«ãã®æå³ é話ãªã³ã¯ О èå¥å â ããªãã®é¢æ°ãããŸããŸãªè©æ¬ºåž«ã«ãã£ãŠåŒã³åºãããªãããã«ãããªãèªèº«ãš Telegram 以å€ã®èª°ã«å¯ŸããŠãç§å¯ã«ããŠãã ããã
次ã«ãå·ŠåŽã®ã¡ãã¥ãŒã䜿çšããŠã次ã®å Žæã«ç§»åããŸã ãšãã£ã¿ æ©èœã ç§ãã¡ã®ããšã¯ã¡ãã£ãšèã«çœ®ããŠãããŸããã è³¢ãæèããããã®æ©èœããã§ãã¯ããããã®æå°éã®ãã³ãã¬ãŒãé¢æ°ãäœæããŸã...ãã ãããã®æèã§ã¯ããã®é¢æ°ã¯ãããã§ã...ã€ãŸããä»ããã§ãããã©ãŒãªã³ã°ãããåçŽãªããããäœæããŸã(ã€ãŸãããŠãŒã¶ãŒãªã¯ãšã¹ããéãè¿ããŸãã ãã®ãã³ãã¬ãŒãã¯ãæ°ããé»å ±ããããäœæãããšãã«åžžã«äœ¿çšããŠã確å®ã«éä¿¡ã§ããããã«ããããšãã§ããŸãã é»å ±'ãªãŒã ã¯æ£åžžã«åäœããŸãã ã¯ãªã㯠ãã¡ã€ã«ãäœæãããåŒã³ãŸããã index.jsããããŠãªã³ã©ã€ã³ ã³ãŒããšãã£ã¿ 次ã®ã³ãŒãããã®ãã¡ã€ã«ã«è²Œãä»ããŸãã
module.exports.bot = async (event) => {
const body = JSON.parse(event.body);
const msg = {
'method': 'sendMessage',
'chat_id': body.message.chat.id,
'text': body.message.text
};
return {
'statusCode': 200,
'headers': {
'Content-Type': 'application/json'
},
'body': JSON.stringify(msg),
'isBase64Encoded': false
};
};
Yandex.Cloud ã³ã³ãœãŒã«ã§ã¯ã次ã®ããã«è¡šç€ºãããŸãã
ããã«ä»¥äžã«ç€ºããŸã ãšã³ããªãŒãã€ã³ã - ã€ã³ããã¯ã¹ãããã©ã index ããã¯ãã¡ã€ã«åã§ã (index.jsïŒãããã³ ããã - é¢æ°å (module.exports.botïŒã ä»ã®ãã£ãŒã«ãã¯ãã¹ãŠãã®ãŸãŸã«ããŠãå³äžé
ã®ãã¿ã³ãã¯ãªãã¯ããŸãã ããŒãžã§ã³ã®äœæã æ°ç§ä»¥å
ã«ããã®ããŒãžã§ã³ã®é¢æ°ãäœæãããŸãã ãã¹ãåŸããã« ãŠã§ãããã¯ãæ°ããããŒãžã§ã³ãäœæããŸã- è³¢ãæè.
ãªããžã§ã¯ãã¹ãã¬ãŒãž
ããã§äœæãå®äºããŸãã ã€ã³ããã¯ã¹æ©èœãããã³ã³ãœãŒã«ã«ããéã« Yandex.Cloudããããããã®ãäœæããŸããããã±ã ïŒãã±ãããã€ãŸããããã§äœ¿çšãããç»åãã¡ã€ã«ãä¿åããããã®ãã·ã¢èªã®ãã±ããè±æã§ã¯ãããŸããïŒ è³¢ãæèã å·ŠåŽã®ããã²ãŒã·ã§ã³ ã¡ãã¥ãŒã§é ç®ãéžæããŸã ãªããžã§ã¯ãèšæ¶åã ãã¿ã³ãæŒã ãã±ãããäœæãããååãèããŠãã ãããããšãã°ã ç»åãã±ããã æãéèŠãªã ãªããžã§ã¯ããžã®èªã¿åãã¢ã¯ã»ã¹ ç§ãã¡ã¯ãããå ¬éããŸã - ããããªããšãTelegram ã¯ç§ãã¡ã®åçãèŠãããšãã§ããŸããã ä»ã®ãã£ãŒã«ãã¯ãã¹ãŠå€æŽããªããŸãŸã«ããŸãã ãã¿ã³ãæŒã ãã±ãããäœæãã.
ãã®åŸããã¹ãŠã®ãã±ããã®ãªã¹ãã¯æ¬¡ã®ããã«ãªããŸã (ãããå¯äžã®ãã±ããã®å Žå)ã
ããã§ããã±ããã®ååãã¯ãªãã¯ãããã®äžã«ãã©ã«ããŒãäœæããŠãããŸããŸãªã¢ããªã±ãŒã·ã§ã³çšã®ç»åã®ã¹ãã¬ãŒãžãæŽçããããšããå§ãããŸãã ããšãã°ãé»å ±ãããã®å Žå è³¢ãæè ãšãããã©ã«ããŒãäœæããŸãã tg-bot-smart-thoughts (äœããããŸããããã®ã³ãŒãã¯ç解ã§ããŸã)ã ããªããäœæããŠãã ããã
ããã§ããã©ã«ããŒåãã¯ãªãã¯ããŠãã©ã«ããŒã«å
¥ãããã¡ã€ã«ãã¢ããããŒãã§ããããã«ãªããŸãã
ãã¡ã€ã«åãã¯ãªãã¯ãããšããããå
¥æã§ããŸã URL ç§ãã¡ã®ãããã§äœ¿çšããããããããŠäžè¬çã«ã©ãã§ã䜿çšã§ããŸãïŒãã ãããããå
¬éããªãã§ãã ããïŒ URL ããã®ãã©ãã£ãã¯ã®ããäžèŠã§ãã ãªããžã§ã¯ãã¹ãã¬ãŒãž ææïŒã
åºæ¬çã«å¿
èŠãªã®ã¯ããã ãã§ã ãªããžã§ã¯ãã¹ãã¬ãŒãžã ããã§ããã¡ã€ã«ãã¢ããããŒãããããã«æ±ããããã³ããã衚瀺ããããšãã«äœããã¹ãããããããŸãã
Webhook
ããã§ã¯ã€ã³ã¹ããŒã«ããŠãããŸã ãŠã§ããã㯠- ã€ãŸããããããµãŒããŒããæŽæ° (ãŠãŒã¶ãŒããã®ã¡ãã»ãŒãžãªã©) ãåä¿¡ãããšã Telegram ç§ãã¡ã® ã€ã³ããã¯ã¹æ©èœ ãªã¯ãšã¹ããéä¿¡ãããŸã (èŠæ±) ããŒã¿ä»ãã 以äžã®è¡ã¯ããã©ãŠã¶ã®ã¢ãã¬ã¹ ãã£ãŒã«ãã«è²Œãä»ããŠãããŒãžãæŽæ°ããã ãã§æžã¿ãŸã (ãã㯠XNUMX åã ãè¡ãå¿
èŠããããŸã)ã https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
亀æããã ãã§ã {ãããããŒã¯ã³} ãããã®äœææã«èŠªãããããåãåã£ãããŒã¯ã³ã«ã {ãŠã§ãããã¯_url} - ãªã³ URL ç§ãã¡ã® Yandexã®æ©èœã ã¡ãã£ãšåŸ
ã£ãŠïŒ ããã ãã¹ã³ã ãã§ã³ãºã« ãã·ã¢é£éŠã®ãããã€ããŒããã®ã¢ãã¬ã¹ã«ãµãŒãã¹ãæäŸããããšãçŠæ¢ããŸã https://api.telegram.org
ã ã¯ããããã§ãã ããããäœããæãã€ããŸãã çµå±ã®ãšãããããšãã°ããŠã¯ã©ã€ããã€ã¹ã©ãšã«ãã«ããã§ã¯ããã®ããšã«ã€ããŠç¥æ¯ã«å°ããããšãã§ããŸããããã«ã¯ããã¹ã³ã æ€é²ãã¯ãªãããããªãã§äººã
ãã©ã®ããã«çãããã¯ç¥ã®ã¿ãç¥ãã§ãã ãã®çµæãWebhook ãã€ã³ã¹ããŒã«ãããšãã®ãªã¯ãšã¹ããšã¬ã¹ãã³ã¹ã¯æ¬¡ã®ããã«ãªããŸãã
ç§ãã¡ã¯ãã¹ãäžã§ãã ããã©ãŒãªã³ã°ãããå¿
èŠããããŸãã
ããã¯æ¬åœã§ãã ããã§ãšãããããŸã - ä» ã€ã³ããã¯ã¹æ©èœ ãšãªã£ãŠããŸã Telegram-ãããïŒ
è³¢ãæè
ãããã¹ããŒãæèãããŠã¿ãŸãããã ã³ãŒãã¯éããŠããŠäžã«ãããŸã
ãããžã§ã¯ãã®ã¯ããŒã³ãäœæããäŸåé¢ä¿ãã€ã³ã¹ããŒã«ããŸãã
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
ãã¡ã€ã«ã«å¿ èŠãªå€æŽãå ããŸã index.js (ãªãã·ã§ã³ãäœãå€æŽããå¿ èŠã¯ãããŸãã)ã äœæãã ZIP-ã¢ãŒã«ã€ãããã¡ã€ã«ä»ã index.js ãšãã©ã«ã㌠node_modules ããšãã°ãååã®äžã«ãã ã¹ããŒã.zip.
次ã«ãã³ã³ãœãŒã«ã«ç§»åããŠã Yandexã®æ©èœãã¿ããéžæ ZIP ã¢ãŒã«ã€ãã ãã¿ã³ãæŒã ãã¡ã€ã«ãéžæãã¢ãŒã«ã€ããããŠã³ããŒãããŠãã ãã ã¹ããŒã.zipã æåŸã«ãå³äžé
ã«ãããã¿ã³ãã¯ãªãã¯ããŸã ããŒãžã§ã³ã®äœæ.
æ°ç§åŸã«æ©èœãæŽæ°ãããããããããå床ãã¹ãããŸãã ä»ã§ã¯åœŒã¯ãã¯ããé¡ãã§ã¯ãªããè³¢æãªèããäŒããŠããŸãã
ãããä»æ¥ã®ãã¹ãŠã§ãã ããã«å€ãã®èšäºãç¶ããŸãã ãããèªãããšã«èå³ãããå Žåã¯ãæ°ããèšäºã«é¢ããéç¥ã賌èªããŠãã ããã ããããããŸãã¯æ¬¡ã®å Žæãã賌èªã§ããŸãã Telegram-ãã£ãã«
ãªãã¡ã¬ã³ã¹
å¯ä»
åºæïŒ habr.com