నేడు, స్క్రాప్ పదార్థాల నుండి, మేము సమీకరించాము https://api.telegram.org/
. సరే, మేము చేయము - లేదు, లేదు. అన్ని తరువాత, మా సంచిలో పిలవబడేవి ఉన్నాయి. వెబ్హూక్స్ — వారి సహాయంతో, మేము నిర్దిష్ట చిరునామాకు అభ్యర్థనలు చేయము, కానీ మాకు ఏదైనా అభ్యర్థనకు ప్రతిస్పందనగా మా అభ్యర్థనను పంపండి. అంటే, ఒడెస్సాలో వలె, మేము ఒక ప్రశ్నతో ఒక ప్రశ్నకు సమాధానం ఇస్తాము. అందుకే టెలిగ్రామ్ API మా కోడ్లో కనిపించదు.
నిరాకరణఈ కథనంలో పేర్కొన్న ఏవైనా ప్రభుత్వ సంస్థల పేర్లు కల్పితం మరియు నిజ జీవితంలోని సంస్థల పేర్లతో సాధ్యమయ్యే మ్యాచ్లు యాదృచ్ఛికం.
కాబట్టి, మేము మాకు స్మార్ట్ ఆలోచనలను అందించే బోట్ను తయారు చేస్తాము. సరిగ్గా చిత్రంలో ఉన్నట్లుగా:
మీరు దీన్ని చర్యలో ప్రయత్నించవచ్చు - ఇక్కడ పేరు ఉంది: @SmartThoughtsBot. బటన్ని గమనించాను "ఆలిస్ నైపుణ్యం"? ఎందుకంటే బోట్ అదే పేరుతో ఉన్న బోట్కి ఒక రకమైన “సహచరుడు”. ఆలిస్ నైపుణ్యం, అనగా ఇది అదే విధులను నిర్వహిస్తుంది ఆలిస్ నైపుణ్యం మరియు వారు ఒకరినొకరు ప్రకటనలు చేసుకోవడం ద్వారా శాంతియుతంగా సహజీవనం చేసే అవకాశం ఉంది. ఎలా సృష్టించాలో గురించి నైపుణ్యం స్మార్ట్ ఆలోచనలు వ్యాసంలో వివరించబడింది
బాట్ను సృష్టిస్తోంది
ఈ ట్యుటోరియల్ అందరికీ ఉపయోగకరంగా ఉండాలని నేను కోరుకుంటున్నాను, సహా. మరియు అనుభవం లేని బోట్ బిల్డర్లు. అందువలన, ఈ విభాగంలో నేను సాధారణంగా ఎలా సృష్టించాలో కొంత వివరంగా వివరిస్తాను Telegram'ఇ బాట్లు. ఈ సమాచారం అవసరం లేని వారి కోసం, క్రింది విభాగాలకు వెళ్లండి.
అప్లికేషన్ తెరవడం టెలిగారం, అన్ని బాట్ల తండ్రి అని పిలుద్దాం (వాళ్ళకి మనుషుల్లాగే అన్నీ ఉన్నాయి) - OtBotFather - మరియు ముందుగా మనం ఏమి చేయగలమో అతని జ్ఞాపకశక్తిని రిఫ్రెష్ చేయడానికి / సహాయం కమాండ్ని అందిస్తాము. ఇప్పుడు మేము జట్టుపై ఆసక్తి కలిగి ఉంటాము / న్యూబోట్.
ఇక్కడ వివరించిన బాట్ ఇప్పటికే సృష్టించబడినందున, ప్రదర్శన ప్రయోజనాల కోసం నేను తక్కువ సమయం కోసం మరొక బాట్ను సృష్టిస్తాను (తర్వాత దాన్ని తొలగిస్తాను). నేను అతనికి కాల్ చేస్తాను DemoHabrBot. పేర్లు ( <span style="font-family: Mandali; "> యూజర్ పేరు </span>) అన్ని టెలిగ్రామ్ బాట్లు తప్పనిసరిగా పదంతో ముగియాలి బాట్ఉదాహరణకు: MyCoolBot లేదా నా_కూల్_బోట్ - ఇది బాట్ల కోసం. అయితే ముందుగా మనం బోట్కి ఒక పేరు పెట్టాము (పేరు) - మరియు ఇది ప్రజల కోసం. పేరు ఏదైనా భాషలో ఉండవచ్చు, ఖాళీలను కలిగి ఉంటుంది మరియు పదంతో ముగించాల్సిన అవసరం లేదు బాట్, మరియు ప్రత్యేకంగా ఉండవలసిన అవసరం లేదు. ఈ ఉదాహరణలో, నేను ఈ బోట్ అని పిలిచాను డెమో హబ్ర్.
ఇప్పుడు బాట్ కోసం పేరును ఎంచుకోండి ( <span style="font-family: Mandali; "> యూజర్ పేరు </span>, బాట్లకు ఒకటి). అతన్ని పిలుద్దాం DemoHabrBot. బాట్ పేరుకు సంబంధించిన ప్రతిదీ (పేరు) అతని పేరుకు అస్సలు సంబంధం లేదు - <span style="font-family: Mandali; "> యూజర్ పేరు </span> (లేదా వర్తిస్తుంది, కానీ సరిగ్గా వ్యతిరేకం). ప్రత్యేకమైన బాట్ పేరును విజయవంతంగా సృష్టించిన తర్వాత, స్క్రీన్షాట్లో ఎరుపు బాణంతో చూపబడిన టోకెన్ను మనం కాపీ చేసి సేవ్ చేయాలి (కఠినమైన విశ్వాసంతో!). దాని సహాయంతో మేము తరువాత మూలాన్ని ఏర్పాటు చేస్తాము Telegram'మాకు ఒక వెబ్హుక్ Yandex ఫంక్షన్.
ఇప్పుడు అన్ని బాట్ల తండ్రికి ఆదేశాన్ని ఇద్దాం: /mybots, మరియు ఇది మేము సృష్టించిన అన్ని బాట్ల జాబితాను చూపుతుంది. తాజాగా కాల్చిన బాట్ను ప్రస్తుతానికి వదిలేద్దాం డెమో హబ్ర్ (ఇది బాట్లను ఎలా సృష్టించాలో చూపించడానికి సృష్టించబడింది, కానీ మేము దీనిని ఇతర ప్రదర్శన ప్రయోజనాల కోసం కూడా ఈ రోజు ఉపయోగిస్తాము), మరియు బాట్ను చూద్దాం స్మార్ట్ ఆలోచనలు (@SmartThoughtsBot) బాట్ల జాబితాలో దాని పేరుతో ఉన్న బటన్ను క్లిక్ చేయండి.
ఇక్కడ మనం మన బోట్ను కాన్ఫిగర్ చేయవచ్చు. బటన్ నొక్కడం ద్వారా సవరించు ... మేము ఒకటి లేదా మరొక ఎంపికను సవరించడానికి వెళ్తాము. ఉదాహరణకు, బటన్పై క్లిక్ చేయడం ద్వారా పేరును సవరించండి మేము బాట్ పేరును మార్చవచ్చు, బదులుగా చెప్పండి స్మార్ట్ ఆలోచనలు, వ్రాయడానికి క్రేజీ ఐడియాలు. బొట్పిక్ - ఇది బోట్ అవతార్, కనీసం ఉండాలి 150 x 150 px. <span style="font-family: Mandali; "> టెండర్ వివరణ</span> — ఇది ప్రశ్నకు సమాధానంగా మొదటిసారిగా బోట్ను ప్రారంభించినప్పుడు వినియోగదారు చూసే చిన్న వివరణ: ఈ బోట్ ఏమి చేయగలదు? మా గురించి — మరింత సంక్షిప్త వివరణ, ఇది బాట్కు లింక్తో ప్రసారం చేయబడుతుంది (https://t.me/SmartThoughtsBot
) లేదా దాని గురించి సమాచారాన్ని చూసేటప్పుడు.
మనం చేయాల్సిందల్లా కమాండ్లను సెటప్ చేయడం. దీన్ని చేయడానికి, బటన్ నొక్కండి ఆదేశాలను సవరించండి. వినియోగదారు అభ్యాసాన్ని ప్రామాణీకరించడానికి Telegram ఎల్లప్పుడూ రెండు ఆదేశాలను ఉపయోగించమని సిఫార్సు చేస్తోంది: /ప్రారంభించండి и / సహాయం, మరియు బాట్కు సెట్టింగ్లు అవసరమైతే, అదనపు / సెట్టింగ్ల ఆదేశాన్ని ఉపయోగించండి. మా బోట్ బంతిలా సులభం, కాబట్టి దీనికి ఇంకా సెట్టింగ్లు అవసరం లేదు. మేము మొదటి రెండు ఆదేశాలను వ్రాస్తాము, తరువాత మేము కోడ్లో ప్రాసెస్ చేస్తాము. ఇప్పుడు, వినియోగదారు ఇన్పుట్ ఫీల్డ్లో స్లాష్ (స్లాష్ సైన్: /) నమోదు చేస్తే, శీఘ్ర ఎంపిక కోసం ఆదేశాల జాబితా కనిపిస్తుంది. ప్రతిదీ చిత్రంలో ఉన్నట్లుగా ఉంది: ఎడమవైపు - మేము తండ్రి బాట్ ద్వారా ఆదేశాలను ఇన్స్టాల్ చేస్తాము; కుడివైపున, ఈ ఆదేశాలు మా బాట్లోని వినియోగదారులకు ఇప్పటికే అందుబాటులో ఉన్నాయి.
Yandex ఫంక్షన్
ఇప్పుడు మా బోట్ సృష్టించబడింది, మనం వెళ్దాం Yandex.Cloudమా బాట్ కోడ్ని అమలు చేసే ఫంక్షన్ని సృష్టించడానికి. మీరు పని చేయకపోతే Yandex.Cloud మెటీరియల్ చదవండి
కాబట్టి కన్సోల్లో Yandex.Cloud ఎడమ నావిగేషన్ మెనులో అంశాన్ని ఎంచుకోండి క్లౌడ్ విధులు, ఆపై బటన్ నొక్కండి ఒక ఫంక్షన్ సృష్టించండి. మేము దాని కోసం ఒక పేరు మరియు చిన్న వివరణను ఇస్తాము.
బటన్ని నొక్కిన తర్వాత సృష్టించడానికి మరియు కొన్ని సెకన్ల తర్వాత, కొత్త ఫంక్షన్ అన్ని ఫంక్షన్ల జాబితాలో కనిపిస్తుంది. ఆమె పేరుపై క్లిక్ చేయండి - ఇది మమ్మల్ని పేజీకి తీసుకెళుతుంది పర్యావలోకనం మా ఫంక్షన్. ఇక్కడ మీరు ఎనేబుల్ చేయాలి (On) మారండి పబ్లిక్ ఫంక్షన్తద్వారా ఇది బాహ్యంగా అందుబాటులో ఉంటుంది (కోసం Yandex.Cloud) ప్రపంచం, మరియు క్షేత్రాల అర్థం కాల్ లింక్ и ఐడెంటిఫైయర్ — మీకు మరియు టెలిగ్రామ్ మినహా ప్రతి ఒక్కరికీ దీన్ని చాలా రహస్యంగా ఉంచండి, తద్వారా మీ ఫంక్షన్ను వివిధ స్కామర్లు పిలవలేరు.
ఇప్పుడు, ఎడమ మెనుని ఉపయోగించి, వెళ్ళండి సంపాదకుడు విధులు. మన సంగతి కాసేపు పక్కన పెడదాం స్మార్ట్ ఆలోచనలు, మరియు మా బాట్ యొక్క కార్యాచరణను తనిఖీ చేయడానికి కనిష్ట టెంప్లేట్ ఫంక్షన్ను సృష్టించండి... అయితే, ఈ సందర్భంలో, ఈ ఫంక్షన్ మా బాట్ ... సంక్షిప్తంగా, ఇప్పుడు మరియు ఇక్కడే మనం “అద్దం” చేసే సాధారణ బోట్ను తయారు చేస్తాము ( అనగా తిరిగి పంపండి ) వినియోగదారు అభ్యర్థనలు. కొత్త టెలిగ్రామ్ బాట్లను సృష్టించేటప్పుడు ఈ టెంప్లేట్ ఎల్లప్పుడూ ఉపయోగించబడుతుంది, తద్వారా కమ్యూనికేషన్ను నిర్ధారించుకోవచ్చు టెలిగ్రామ్'ఓం బాగా పనిచేస్తుంది. క్లిక్ చేయండి ఫైల్ని సృష్టించండి, దానిని పిలుద్దాం 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.botపేరు ఇండెక్స్ ఇది ఫైల్ పేరు (index.js), మరియు బాట్ - ఫంక్షన్ పేరు (module.exports.bot) అన్ని ఇతర ఫీల్డ్లను అలాగే వదిలి, ఎగువ కుడి మూలలో ఉన్న బటన్ను క్లిక్ చేయండి సంస్కరణను సృష్టించండి. కొన్ని సెకన్లలో ఫంక్షన్ యొక్క ఈ వెర్షన్ సృష్టించబడుతుంది. పరీక్ష తర్వాత వెంటనే webhook, మేము కొత్త సంస్కరణను సృష్టిస్తాము - స్మార్ట్ ఆలోచనలు.
వస్తువు నిల్వ
ఇప్పుడు మేము సృష్టించాము Yandex ఫంక్షన్, మేము కన్సోల్లో ఉన్నప్పుడు రండి Yandex.Cloud, అని పిలవబడే వాటిని సృష్టిద్దాం బకెట్ (బకెట్, అనగా రష్యన్లో బకెట్, బొకే కాదు) మా బాట్లో ఉపయోగించబడే ఇమేజ్ ఫైల్లను నిల్వ చేయడానికి స్మార్ట్ ఆలోచనలు. ఎడమ నావిగేషన్ మెనులో అంశాన్ని ఎంచుకోండి ఆబ్జెక్ట్ నిల్వ, బటన్ నొక్కండి ఒక బకెట్ సృష్టించండి, దానికి ఒక పేరు పెట్టండి, ఉదాహరణకు, img-బకెట్, మరియు, ముఖ్యంగా, వస్తువులకు చదవడానికి యాక్సెస్ మేము దానిని పబ్లిక్ చేస్తాము - లేకపోతే టెలిగ్రామ్ మా చిత్రాలను చూడదు. మేము అన్ని ఇతర ఫీల్డ్లను మార్చకుండా వదిలివేస్తాము. బటన్ నొక్కండి ఒక బకెట్ సృష్టించండి.
దీని తర్వాత, అన్ని బకెట్ల జాబితా ఇలా ఉండవచ్చు (ఇది మీ ఏకైక బకెట్ అయితే):
ఇప్పుడు నేను మీ విభిన్న అప్లికేషన్ల కోసం చిత్రాల నిల్వను నిర్వహించడానికి బకెట్ పేరుపై క్లిక్ చేసి, దాని లోపల ఫోల్డర్ను సృష్టించమని సూచిస్తున్నాను. ఉదాహరణకు, టెలిగ్రామ్ బాట్ కోసం స్మార్ట్ ఆలోచనలు అనే ఫోల్డర్ని సృష్టించాను tg-bot-స్మార్ట్-ఆలోచనలు (ఏమీ లేదు, నేను ఈ కోడ్ని అర్థం చేసుకుంటాను). ఒకదాన్ని కూడా సృష్టించండి.
ఇప్పుడు మీరు ఫోల్డర్ పేరుపై క్లిక్ చేసి, అందులోకి వెళ్లి ఫైల్లను అప్లోడ్ చేయవచ్చు:
మరియు ఫైల్ పేరుపై క్లిక్ చేయడం ద్వారా - దాన్ని పొందండి URL మా బాట్లో ఉపయోగం కోసం మరియు సాధారణంగా - ఎక్కడైనా (కానీ దీనిని ప్రచురించవద్దు URL నుండి ట్రాఫిక్ నుండి అనవసరం వస్తువు నిల్వ వసూలు చేయబడింది).
ప్రాథమికంగా అంతే వస్తువు నిల్వ. ఫైల్లను అప్లోడ్ చేయమని మీకు ప్రాంప్ట్ కనిపించినప్పుడు ఏమి చేయాలో ఇప్పుడు మీకు తెలుస్తుంది.
వెబ్హుక్
ఇప్పుడు మేము ఇన్స్టాల్ చేస్తాము webhook - అనగా బోట్ సర్వర్ నుండి నవీకరణను (ఉదాహరణకు, వినియోగదారు నుండి సందేశం) స్వీకరించినప్పుడు Telegram మన Yandex ఫంక్షన్ ఒక అభ్యర్థన పంపబడుతుంది (అభ్యర్థన) డేటాతో. మీరు మీ బ్రౌజర్ చిరునామా ఫీల్డ్లో అతికించగల ఒక లైన్ ఇక్కడ ఉంది, ఆపై పేజీని రిఫ్రెష్ చేయండి (మీరు దీన్ని ఒకసారి మాత్రమే చేయాలి): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
మేము దానిని భర్తీ చేస్తాము {bot_token} మా బోట్ను సృష్టించేటప్పుడు ఫాదర్ బాట్ నుండి మేము అందుకున్న టోకెన్కు, మరియు {webhook_url} - న URL మా Yandex విధులు. ఒక నిమిషం ఆగు! కానీ RossKomTsenzur చిరునామాకు సేవలు అందించకుండా రష్యన్ ఫెడరేషన్లోని ప్రొవైడర్లను నిషేధిస్తుంది https://api.telegram.org
. అవును అది ఒప్పు. కానీ ఏదో ఆలోచనతో రండి. అన్నింటికంటే, మీరు ఉదాహరణకు, ఉక్రెయిన్, ఇజ్రాయెల్ లేదా కెనడాలో దీని గురించి మీ అమ్మమ్మను అడగవచ్చు - అక్కడ “రోస్కామ్ సెన్సార్షిప్” లేదు మరియు ప్రజలు అది లేకుండా ఎలా జీవిస్తారో దేవునికి మాత్రమే తెలుసు. ఫలితంగా, వెబ్హుక్ను ఇన్స్టాల్ చేసేటప్పుడు అభ్యర్థన-ప్రతిస్పందన ఇలా ఉండాలి:
మేము పరీక్షిస్తున్నాము. ఇది "అద్దం" ఉండాలి.
ఇది నిజం. మా అభినందనలు - ఇప్పుడు Yandex ఫంక్షన్ అయ్యాడు Telegram-బోట్!
స్మార్ట్ ఆలోచనలు
ఇప్పుడు స్మార్ట్ థాట్స్ చేద్దాం. కోడ్ తెరిచి ఉంది మరియు ఆన్లో ఉంది
ప్రాజెక్ట్ను క్లోన్ చేయండి మరియు డిపెండెన్సీలను ఇన్స్టాల్ చేయండి:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
ఫైల్లో మీకు అవసరమైన మార్పులను చేయండి index.js (ఐచ్ఛికం; మీరు దేనినీ మార్చవలసిన అవసరం లేదు). సృష్టించు జిప్-ఆర్కైవ్, ఫైల్తో index.js మరియు ఫోల్డర్ నోడ్_మాడ్యూల్స్ లోపల, ఉదాహరణకు, పేరుతో స్మార్ట్.జిప్.
ఇప్పుడు మా కన్సోల్కి వెళ్లండి Yandex విధులు, ట్యాబ్ని ఎంచుకోండి జిప్ ఆర్కైవ్, బటన్ నొక్కండి ఫైల్ను ఎంచుకోండి, మరియు మా ఆర్కైవ్ను డౌన్లోడ్ చేయండి స్మార్ట్.జిప్. చివరగా, కుడి ఎగువ మూలలో, బటన్ను క్లిక్ చేయండి సంస్కరణను సృష్టించండి.
కొన్ని సెకన్లలో, ఫంక్షన్ నవీకరించబడినప్పుడు, మేము మా బోట్ను మళ్లీ పరీక్షిస్తాము. ఇప్పుడు అతను ఇకపై "అద్దాలు" కాదు, కానీ స్మార్ట్ ఆలోచనలు అందిస్తుంది!
నేటికీ అంతే. మరిన్ని కథనాలు అనుసరిస్తాయి. మీరు దీన్ని చదవడానికి ఆసక్తి కలిగి ఉంటే, కొత్త కథనాల గురించి నోటిఫికేషన్లకు సభ్యత్వాన్ని పొందండి. మీరు ఇక్కడ లేదా వద్ద సభ్యత్వం పొందవచ్చు Telegram-ఛానల్
సూచనలు
విరాళాలు
మూలం: www.habr.com