Այսօր ջարդոնի նյութերից մենք կհավաքենք https://api.telegram.org/
. Դե, մենք չենք անի - ոչ, ոչ: Ի վերջո, մեր պայուսակում կան այսպես կոչված. վեբկեռիկներ — Նրանց օգնությամբ մենք հարցումներ չենք անում կոնկրետ հասցեով, այլ պարզապես ուղարկում ենք մեր հարցումը որպես պատասխան ցանկացած հարցման մեզ: Այսինքն, ինչպես Օդեսայում, մենք հարցին պատասխանում ենք հարցով։ Ահա թե ինչու Telegram API չի հայտնվի մեր կոդում:
Հրաժարում պատասխանատվությունիցԱյս հոդվածում նշված պետական կազմակերպությունների անունները մտացածին են, իսկ իրական կազմակերպությունների անունների հետ հնարավոր համընկնումները պատահական են:
Այսպիսով, մենք կպատրաստենք բոտ, որը մեզ խելացի մտքեր կապահովի։ Ճիշտ այնպես, ինչպես նկարում.
Դուք կարող եք փորձել այն գործողության մեջ - ահա անունը. @SmartThoughtsBot. Նկատեց կոճակը «Ալիսի հմտությունը»? Դա պայմանավորված է նրանով, որ բոտը մի տեսակ «ուղեկցորդ» է նույնանուն բոտի համար: Ալիսի հմտությունը, այսինքն. այն կատարում է նույն գործառույթները, ինչ Ալիսի հմտությունը եւ հնարավոր է, որ նրանք կարողանան խաղաղ գոյակցել՝ միմյանց գովազդելով։ Այն մասին, թե ինչպես ստեղծել հմտություններ Խելացի մտքեր նկարագրված է հոդվածում
Բոտի ստեղծում
Ես կցանկանայի, որ այս ձեռնարկը օգտակար լինի բոլորի համար, ներառյալ. և սկսնակ բոտ կառուցողներ: Հետեւաբար, այս բաժնում ես որոշ մանրամասն նկարագրելու եմ, թե ինչպես ստեղծել ընդհանրապես Telegramբոտեր. Նրանց համար, ովքեր չեն պահանջում այս տեղեկատվությունը, անցեք հետևյալ բաժիններին:
Բացեք հավելվածը Telegaram, եկեք բոլոր բոտերի հայրը կոչենք (նրանք ամեն ինչ ունեն մարդկանց նման) - @BotFather - և նախ մենք նրան կտանք /help հրամանը՝ թարմացնելու իր հիշողությունը, թե ինչ կարող ենք անել: Հիմա մեզ կհետաքրքրի թիմը / newbot.
Քանի որ այստեղ նկարագրված բոտն արդեն ստեղծվել է, ցուցադրական նպատակով ես կարճ ժամանակով կստեղծեմ մեկ այլ բոտ (հետո կջնջեմ այն)։ Ես կկանչեմ նրան DemoHabrBot. Անուններ (օգտագործողի անունը) բոլոր հեռագրային բոտերը պետք է ավարտվեն բառով bot, օրինակ ` MyCoolBot կամ my_cool_bot - սա բոտերի համար է: Բայց նախ բոտին տալիս ենք անուն (անուն) - և սա մարդկանց համար է: Անունը կարող է լինել ցանկացած լեզվով, պարունակել բացատներ և պարտադիր չէ, որ ավարտվի բառով bot, և նույնիսկ պարտադիր չէ, որ եզակի լինի: Այս օրինակում ես անվանեցի այս բոտը Demo Habr.
Այժմ ընտրեք անուն բոտի համար (օգտագործողի անունը, բոտերի համար)։ Եկեք զանգենք նրան DemoHabrBot. Ամեն ինչ կապված է բոտի անվան հետ (անուն) ընդհանրապես չի առնչվում նրա անվան հետ. օգտագործողի անունը (կամ կիրառվում է, բայց ճիշտ հակառակը): Բոտի եզակի անուն հաջողությամբ ստեղծելուց հետո մենք պետք է պատճենենք և պահպանենք (խիստ գաղտնիությամբ) սքրինշոթում ցուցադրված նշանը կարմիր սլաքով: Նրա օգնությամբ մենք հետագայում կհաստատենք ծագումը Telegram«Վեբկապ մեր համար Yandex գործառույթը.
Հիմա եկեք հրաման տանք բոլոր բոտերի հորը. /mybots, և այն մեզ ցույց կտա մեր ստեղծած բոլոր բոտերի ցուցակը: Թարմ թխած բոտին առայժմ հանգիստ թողնենք Demo Habr (այն ստեղծվել է ցույց տալու, թե ինչպես ստեղծել բոտեր, բայց մենք այն այսօր կօգտագործենք նաև այլ ցուցադրական նպատակներով), և եկեք նայենք բոտին. Խելացի մտքեր (@SmartThoughtsBot) Սեղմեք կոճակը իր անունով բոտերի ցանկում:
Այստեղ մենք կարող ենք կարգավորել մեր բոտը: Սեղմելով կոճակը Խմբագրել… Մենք կանցնենք այս կամ այն տարբերակի խմբագրմանը։ Օրինակ՝ սեղմելով կոճակը Խմբագրել անունը կարող ենք փոխել բոտի անունը, փոխարենը ասենք Խելացի մտքեր, գրել Խենթ գաղափարներ. Բոտպիկ - սա բոտի ավատարն է, պետք է լինի առնվազն 150 150 x PX. Նկարագրություն — սա կարճ նկարագրություն է, որը օգտատերը տեսնում է բոտն առաջին անգամ գործարկելիս՝ որպես հարցի պատասխան. Ի՞նչ կարող է անել այս բոտը: Մեր Մասին — նույնիսկ ավելի հակիրճ նկարագրություն, որը փոխանցվում է բոտի հղումով (https://t.me/SmartThoughtsBot
) կամ դրա մասին տեղեկատվությունը դիտելիս:
Մեզ մնում է միայն կարգավորել հրամանները: Դա անելու համար սեղմեք կոճակը Խմբագրել հրամանները. Օգտագործողի պրակտիկան ստանդարտացնելու համար Telegram խորհուրդ է տալիս միշտ օգտագործել երկու հրաման. /սկսել и / Օգնություն, և եթե բոտին անհրաժեշտ են կարգավորումներ, օգտագործեք լրացուցիչ /settings հրամանը։ Մեր բոտը գնդակի պես պարզ է, ուստի այն դեռևս կարգավորումների կարիք չունի: Մենք գրում ենք առաջին երկու հրամանները, որոնք հետո կմշակենք կոդով։ Այժմ, եթե օգտատերը մուտքագրման դաշտում մուտքագրում է շեղ (շեղի նշան՝ /), արագ ընտրության համար կհայտնվի հրամանների ցանկ: Ամեն ինչ այնպես է, ինչպես նկարում. ձախ կողմում - մենք հրամաններ ենք տեղադրում հայր բոտի միջոցով; աջ կողմում այս հրամաններն արդեն հասանելի են մեր բոտի օգտատերերին:
Yandex գործառույթը
Այժմ, երբ մեր բոտը ստեղծվել է, եկեք գնանք Yandex.Cloudստեղծել մի ֆունկցիա, որը կկատարի մեր բոտի կոդը: Եթե դուք չեք աշխատել հետ Yandex.Cloud կարդալ նյութը
Այսպիսով, կոնսոլում Yandex.Cloud ձախ նավիգացիոն մենյուում ընտրեք տարրը Ամպի գործառույթները, ապա սեղմեք կոճակը Ստեղծեք գործառույթ. Մենք տալիս ենք անուն և կարճ նկարագրություն մեզ համար։
Կոճակը սեղմելուց հետո ստեղծել և մի քանի վայրկյան հետո նոր գործառույթը կհայտնվի բոլոր գործառույթների ցանկում։ Սեղմեք նրա անվան վրա, սա մեզ կտանի էջ Վերանայել մեր գործառույթը. Այստեղ դուք պետք է միացնեք (On) անջատիչ Հասարակական գործառույթորպեսզի այն հասանելի դառնա արտաքինից (համար Yandex.Cloud) աշխարհի, և դաշտերի իմաստը Զանգի հղում и Նույնացուցիչ — Խորապես գաղտնի պահեք բոլորից, բացի ձեզնից և Telegram-ից, որպեսզի ձեր գործառույթը չկարողանա կանչել տարբեր խաբեբաների կողմից:
Այժմ, օգտագործելով ձախ ընտրացանկը, անցեք Խմբագիր գործառույթները։ Մի պահ մի կողմ դնենք մեր Խելացի մտքեր, և ստեղծեք մինիմալ շաբլոն ֆունկցիա՝ ստուգելու մեր բոտի ֆունկցիոնալությունը... Այնուամենայնիվ, այս համատեքստում այս ֆունկցիան մեր բոտն է... Մի խոսքով, հիմա և հենց այստեղ մենք կպատրաստենք մի պարզ բոտ, որը «հայելելու է» ( այսինքն հետ ուղարկել ) օգտվողի հարցումները: Այս ձևանմուշը միշտ կարող է օգտագործվել Telegram-ի նոր բոտերի ստեղծման ժամանակ՝ համոզվելու համար, որ հաղորդակցությունը հետ 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.botՈրտեղ ինդեքս սա ֆայլի անունն է (index.js), և bot - ֆունկցիայի անվանումը (module.exports.bot) Մնացած բոլոր դաշտերը թողեք այնպես, ինչպես կա, և սեղմեք վերին աջ անկյունում գտնվող կոճակը Ստեղծել տարբերակ. Մի քանի վայրկյանից կստեղծվի ֆունկցիայի այս տարբերակը։ Փորձարկումից անմիջապես հետո վեբկեռիկ, մենք կստեղծենք նոր տարբերակ - Խելացի մտքեր.
Օբյեկտների պահեստավորում
Այժմ, երբ մենք ստեղծել ենք Yandex գործառույթը, արի՛, մինչ մենք մխիթարել ենք Yandex.Cloud, ստեղծենք այսպես կոչված դույլ (շերեփ, այսինքն. դույլ ռուսերեն, ընդհանրապես ոչ ծաղկեփունջ) պատկերային ֆայլեր պահելու համար, որոնք կօգտագործվեն մեր բոտում Խելացի մտքեր. Ձախ նավիգացիոն ընտրացանկում ընտրեք տարրը Նյութերի պահեստավորում, սեղմել կոճակը Ստեղծեք դույլ, դրա համար անուն հորինեք, օրինակ, img-bucketև, ամենակարևորը, Կարդալ մուտք դեպի օբյեկտներ Մենք հրապարակում ենք այն, այլապես Telegram-ը չի տեսնի մեր նկարները: Մնացած բոլոր դաշտերը թողնում ենք անփոփոխ։ սեղմել կոճակը Ստեղծեք դույլ.
Դրանից հետո բոլոր դույլերի ցանկը կարող է այսպիսի տեսք ունենալ (եթե սա ձեր միակ դույլն է).
Այժմ ես առաջարկում եմ սեղմել դույլի անվան վրա և դրա ներսում ստեղծել թղթապանակ՝ ձեր տարբեր հավելվածների համար պատկերների պահպանումը կազմակերպելու համար: Օրինակ՝ հեռագրային բոտի համար Խելացի մտքեր Ես ստեղծեցի մի թղթապանակ, որը կոչվում էր tg-bot-smart-thoughts (ոչինչ, ես կհասկանամ այս ծածկագիրը): Ստեղծեք նաև մեկը:
Այժմ կարող եք սեղմել թղթապանակի անվան վրա, մտնել դրա մեջ և վերբեռնել ֆայլեր.
Եվ սեղմելով ֆայլի անվան վրա՝ ստացեք այն URL մեր բոտում օգտագործելու համար, և ընդհանրապես՝ ցանկացած վայրում (բայց մի հրապարակեք սա URL ավելորդ, քանի որ երթևեկությունը Օբյեկտների պահեստավորում գանձված):
Դա հիմնականում այն է, ինչ կա դրա համար Օբյեկտների պահեստավորում. Այժմ դուք կիմանաք, թե ինչ անել, երբ այնտեղ ֆայլեր վերբեռնելու հուշում տեսնեք:
Webhook
Այժմ մենք կտեղադրենք վեբկեռիկ - այսինքն. երբ բոտը սերվերից թարմացում է ստանում (օրինակ՝ հաղորդագրություն օգտվողից): Telegram մեր Yandex գործառույթը հարցում կուղարկվի (պահանջել) տվյալների հետ։ Ահա մի տող, որը կարող եք պարզապես տեղադրել ձեր բրաուզերի հասցեի դաշտում և այնուհետև թարմացնել էջը (դա պետք է անեք միայն մեկ անգամ). https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
Մենք պարզապես կփոխարինենք այն {bot_token} այն նշանին, որը մենք ստացել ենք հայր բոտից մեր բոտը ստեղծելիս, և {webhook_url} - վրա URL մեր Յանդեքսի գործառույթները. Մի րոպե սպասիր! Բայց ՌոսԿոմԾենզուր արգելում է Ռուսաստանի Դաշնությունում գտնվող պրովայդերներին սպասարկել հասցեն https://api.telegram.org
. Այո դա ճիշտ է. Բայց մի բան մտածեք: Ի վերջո, դուք կարող եք, օրինակ, հարցնել ձեր տատիկին այս մասին Ուկրաինայում, Իսրայելում կամ Կանադայում. այնտեղ «Ռոսկոմցենզուրա» չկա, և Աստված գիտի միայն, թե ինչպես են մարդիկ ապրում առանց դրա: Արդյունքում, վեբ-կապը տեղադրելիս հարցում-պատասխանը պետք է այսպիսի տեսք ունենա.
Մենք փորձարկում ենք. Այն պետք է «հայելային»:
Սա ճիշտ է։ Մեր շնորհավորանքները հիմա Yandex գործառույթը դարձել Telegram- բոտ!
Խելացի մտքեր
Հիմա եկեք անենք Smart Thoughts: Կոդը բաց է և ընկած է
Կլոնավորեք նախագիծը և տեղադրեք կախվածությունները.
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
Կատարեք անհրաժեշտ փոփոխությունները ֆայլում index.js (ըստ ցանկության, դուք ոչինչ փոխելու կարիք չունեք): Ստեղծել սուլոցով թռչել-արխիվ, ֆայլով index.js և թղթապանակ հանգույցի_մոդուլներ ներսում, օրինակ, անվան տակ smart.zip.
Այժմ գնացեք մխիթարել մեր Յանդեքսի գործառույթները, ընտրեք ներդիրը ZIP արխիվ, սեղմել կոճակը Ընտրեք ֆայլ, և ներբեռնեք մեր արխիվը smart.zip. Վերջապես, վերին աջ անկյունում սեղմեք կոճակը Ստեղծել տարբերակ.
Մի քանի վայրկյանից, երբ ֆունկցիան թարմացվի, մենք նորից կփորձարկենք մեր բոտը։ Այժմ նա այլևս չի «հայելիում», այլ խելացի մտքեր է հաղորդում:
Այսօրվա համար այսքանը: Հետևում են ավելի շատ հոդվածներ: Եթե դուք հետաքրքրված եք սա կարդալով, բաժանորդագրվեք նոր հոդվածների մասին ծանուցումներին: Դուք կարող եք բաժանորդագրվել այստեղ, կամ էլ Telegramալիք
Սայլակ
Նվիրատվություններ
Source: www.habr.com