අද, සීරීම් ද්රව්ය වලින්, අපි එකලස් කරන්නෙමු https://api.telegram.org/
. හොඳයි, අපි නැහැ - නැහැ, නැහැ. සියල්ලට පසු, අපගේ බෑගයේ ඊනියා ඇත. webhooks - ඔවුන්ගේ උපකාරයෙන්, අපි නිශ්චිත ලිපිනයකට ඉල්ලීම් නොකරමු, නමුත් අපට ඕනෑම ඉල්ලීමකට ප්රතිචාරයක් ලෙස අපගේ ඉල්ලීම එවන්න. එනම්, Odessa හි මෙන්, අපි ප්රශ්නයකට ප්රශ්නයක් සමඟ පිළිතුරු දෙන්නෙමු. ඒක තමයි Telegram API අපගේ කේතයෙහි නොපෙන්වයි.
වියාචනයමෙම ලිපියේ සඳහන් ඕනෑම රාජ්ය සංවිධානයක නම් මනඃකල්පිත වන අතර සැබෑ ජීවිතයේ සංවිධානවල නම් සමඟ ඇති විය හැකි ගැලපීම් අහම්බයකි.
ඉතින්, අපි අපට බුද්ධිමත් සිතුවිලි ලබා දෙන බොට් එකක් සාදන්නෙමු. පින්තූරයේ ඇති ආකාරයටම:
ඔබට එය ක්රියාවෙන් උත්සාහ කළ හැකිය - මෙන්න නම: @SmartThoughtsBot. බොත්තම දුටුවා "ඇලිස්ගේ දක්ෂතාවය"? මක්නිසාද යත්, බොට් එකම නම ඇති බොට් සඳහා “සහකාරියක්” වන බැවිනි. ඇලිස්ගේ දක්ෂතාවය, i.e. එය සමාන කාර්යයන් ඉටු කරයි ඇලිස්ගේ දක්ෂතාවය සහ එකිනෙකාට ප්රචාර කිරීමෙන් සාමකාමීව සහජීවනයෙන් සිටීමට හැකිවනු ඇත. නිර්මාණය කරන ආකාරය ගැන දක්ෂ සිතුවිලි ලිපියේ විස්තර කර ඇත
බොට් එකක් නිර්මාණය කිරීම
මෙම නිබන්ධනය ඇතුළුව සැමට ප්රයෝජනවත් වීමට මම කැමතියි. සහ නවක බොට් සාදන්නන්. එමනිසා, මෙම කොටසේදී මම පොදුවේ නිර්මාණය කරන්නේ කෙසේද යන්න විස්තරාත්මකව විස්තර කරමි විදුලි පණිවුඩඊ බොට්ස්. මෙම තොරතුරු අවශ්ය නොවන අය සඳහා පහත කොටස් වෙත යන්න.
යෙදුම විවෘත කරන්න ටෙලිගරම්, අපි සියලුම බොට් වල පියා ලෙස හඳුන්වමු (ඔවුන්ට මිනිසුන් මෙන් සියල්ල ඇත) - OtBotFather - සහ මුලින්ම අපි ඔහුට / උදව් විධානය ලබා දෙන්නෙමු අපට කළ හැකි දේ පිළිබඳ ඔහුගේ මතකය අලුත් කිරීමට. දැන් අපි කණ්ඩායම ගැන උනන්දු වනු ඇත / newbot.
මෙහි විස්තර කර ඇති bot දැනටමත් නිර්මාණය කර ඇති බැවින්, නිරූපණ අරමුණු සඳහා මම කෙටි කාලයක් සඳහා වෙනත් bot එකක් නිර්මාණය කරමි (ඉන්පසු එය මකා දමන්න). මම ඔහුට කතා කරන්නම් DemoHabrBot. නම් (පරිශීලක නාමය) සියලුම ටෙලිග්රාම් බොට්ස් වචනයෙන් අවසන් විය යුතුය බොට්උදාහරණයක් ලෙස: MyCoolBot හෝ my_cool_bot - මෙය බොට්ස් සඳහා වේ. නමුත් මුලින්ම අපි බොට් එකට නමක් දෙනවා (නාමය) - සහ මෙය මිනිසුන් සඳහා ය. නම ඕනෑම භාෂාවකින් විය හැකිය, හිස්තැන් අඩංගු විය හැකි අතර වචනයකින් අවසන් විය යුතු නැත බොට්, සහ අද්විතීය විය යුතු නැත. මෙම උදාහරණයේ දී, මම මෙම බොට් ලෙස හැඳින්වේ Demo Habr.
දැන් බොට් සඳහා නමක් තෝරන්න (පරිශීලක නාමය, බොට්ස් සඳහා වූ එක). අපි ඔහුට කතා කරමු DemoHabrBot. බොට් එකේ නමට අදාළ සියල්ල (නාමය) ඔහුගේ නමට කිසිසේත් සම්බන්ධ නොවේ - පරිශීලක නාමය (හෝ අදාළ වේ, නමුත් හරියටම ප්රතිවිරුද්ධ). අද්විතීය බොට් නාමයක් සාර්ථකව නිර්මාණය කිරීමෙන් පසුව, අපට රතු ඊතලයක් සහිත තිර පිටපතේ පෙන්වා ඇති ටෝකනය පිටපත් කර සුරැකිය යුතුය (දැඩි විශ්වාසයකින්!). එහි ආධාරයෙන් අපි පසුව ආරම්භය ස්ථාපිත කරමු විදුලි පණිවුඩ'අපට webhook එකක් Yandex කාර්යය.
දැන් අපි සියලුම බොට් වල පියාට විධානය ලබා දෙමු: /mybots, සහ එය අප විසින් නිර්මාණය කරන ලද සියලුම බොට් ලැයිස්තුවක් පෙන්වනු ඇත. අලුතින් බේක් කරපු බොට් එක දැනට තනියම තියමු Demo Habr (එය නිර්මාණය කර ඇත්තේ බොට් නිර්මාණය කරන ආකාරය පෙන්වීමටය, නමුත් අපි අද එය වෙනත් ආදර්ශන අරමුණු සඳහා භාවිතා කරන්නෙමු), සහ අපි බොට් දෙස බලමු බුද්ධිමත් සිතුවිලි (@SmartThoughtsBot) බොට් ලැයිස්තුවේ එහි නම සහිත බොත්තම ක්ලික් කරන්න.
මෙන්න අපිට අපේ bot එක configure කරන්න පුළුවන්. බොත්තම එබීමෙන් සංස්කරණය කරන්න… අපි එක් හෝ වෙනත් විකල්පයක් සංස්කරණය කිරීමට ඉදිරියට යන්නෙමු. උදාහරණයක් ලෙස, බොත්තම මත ක්ලික් කිරීමෙන් නම සංස්කරණය කරන්න අපිට බොට් එකේ නම වෙනස් කරන්න පුළුවන්, ඒ වෙනුවට කියන්න බුද්ධිමත් සිතුවිලි, ලියන්න පිස්සු අදහස්. බොට්පික් - මෙය බොට්ගේ අවතාරයයි, අවම වශයෙන් විය යුතුය 150 x 150 px. විස්තර — මෙය ප්රශ්නයට පිළිතුරක් ලෙස ප්රථම වරට bot ආරම්භ කරන විට පරිශීලකයා දකින කෙටි විස්තරයකි: මේ bot එකට මොනවද කරන්න පුළුවන්? අප ගැන - ඊටත් වඩා කෙටි විස්තරයක්, එය බොට් වෙත සබැඳියක් සමඟ සම්ප්රේෂණය වේ (https://t.me/SmartThoughtsBot
) හෝ ඒ පිළිබඳ තොරතුරු බැලීමේදී.
අපිට කරන්න තියෙන්නේ commands setup කරන එක විතරයි. මෙය සිදු කිරීම සඳහා, බොත්තම ඔබන්න විධාන සංස්කරණය කරන්න. පරිශීලක භාවිතය සම්මත කිරීමට විදුලි පණිවුඩ සෑම විටම විධාන දෙකක් භාවිතා කිරීම නිර්දේශ කරයි: /ආරම්භ කරන්න и / උදව්, සහ bot හට සැකසුම් අවශ්ය නම්, අතිරේක /සැකසීම් විධානය භාවිතා කරන්න. අපේ බොට් එක බෝලයක් තරම් සරලයි, ඒ නිසා එයට තවම කිසිම සැකසුම් අවශ්ය නැහැ. අපි පළමු විධාන දෙක ලියන්නෙමු, පසුව අපි කේතයෙන් සකසන්නෙමු. දැන්, පරිශීලකයා ආදාන ක්ෂේත්රය තුළ slash (slash ලකුණ: /) ඇතුල් කළහොත්, ඉක්මන් තේරීම සඳහා විධාන ලැයිස්තුවක් දිස්වනු ඇත. සෑම දෙයක්ම පින්තූරයේ මෙන්: වම් පසින් - අපි පියා බොට් හරහා විධාන ස්ථාපනය කරමු; දකුණු පසින්, මෙම විධාන දැනටමත් අපගේ බොට් හි පරිශීලකයින්ට ලබා ගත හැකිය.
Yandex කාර්යය
දැන් අපේ bot එක හදලා ඉවරයි, අපි යමු Yandex.Cloudඅපගේ බොට් කේතය ක්රියාත්මක කරන ශ්රිතයක් නිර්මාණය කිරීමට. ඔබ සමඟ වැඩ කර නොමැති නම් Yandex.Cloud ද්රව්ය කියවන්න
ඉතින් කොන්සෝලයේ Yandex.Cloud වම් සංචාලන මෙනුවේ අයිතමය තෝරන්න වලාකුළු කාර්යයන්, ඉන්පසු බොත්තම ඔබන්න කාර්යයක් සාදන්න. අපි එයට නමක් සහ කෙටි විස්තරයක් ලබා දෙන්නෙමු.
බොත්තම එබීමෙන් පසු නිර්මාණය තත්පර කිහිපයකට පසු, නව ශ්රිතය සියලුම ශ්රිත ලැයිස්තුවේ දිස්වනු ඇත. ඇයගේ නම මත ක්ලික් කරන්න - මෙය අපව පිටුවට ගෙන යනු ඇත දළ විශ්ලේෂණය අපගේ කාර්යය. මෙහිදී ඔබට සක්රිය කළ යුතුය (On) ස්විචය පොදු කාර්යයඑය බාහිරින් ප්රවේශ විය හැකි වන පරිදි (සඳහා Yandex.Cloud) ලෝකයේ, සහ ක්ෂේත්රවල අර්ථය ඇමතුම් සබැඳිය и හැඳුනුම්පත - ඔබ සහ ටෙලිග්රාම් හැර අන් සියල්ලන්ගෙන් එය ඉතා රහසිගතව තබා ගන්න, එවිට ඔබේ ක්රියාකාරිත්වය විවිධ වංචාකරුවන් විසින් හැඳින්විය නොහැක.
දැන්, වම් මෙනුව භාවිතා කර, යන්න සංස්කාරකය කාර්යයන්. අපි ටිකක් පැත්තකින් තියමු අපේ බුද්ධිමත් සිතුවිලි, සහ අපගේ bot හි ක්රියාකාරීත්වය පරීක්ෂා කිරීම සඳහා අවම සැකිලි ශ්රිතයක් සාදන්න... කෙසේ වෙතත්, මෙම සන්දර්භය තුළ, මෙම ශ්රිතය අපගේ බොට් වේ... කෙටියෙන් කිවහොත්, දැන් සහ මෙහිදී අපි "කැඩපත" කරන සරල බොට් එකක් සාදන්නෙමු. එනම් ආපසු යවන්න ) පරිශීලක ඉල්ලීම්. මෙම සැකිල්ල සෑම විටම නව ටෙලිග්රාම් බොට් නිර්මාණය කිරීමේදී භාවිතා කළ හැකි අතර එය සමඟ සන්නිවේදනය කිරීමට වග බලා ගන්න ටෙලිග්රාම්'ohm හොඳට වැඩ කරනවා. ක්ලික් කරන්න ගොනුවක් සාදන්න, අපි ඒකට කතා කරමු 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, අපි ඊනියා නිර්මාණය කරමු බාල්දිය (බාල්දියක්, i.e. රුසියානු භාෂාවෙන් බාල්දිය, කිසිසේත් මල් කළඹක් නොවේ) අපගේ බොට් හි භාවිතා වන රූප ගොනු ගබඩා කිරීම සඳහා බුද්ධිමත් සිතුවිලි. වම් සංචාලන මෙනුවේ අයිතමය තෝරන්න වස්තු ගබඩා කිරීම, බොත්තම ඔබන්න බාල්දියක් සාදන්න, ඒ සඳහා නමක් ඉදිරිපත් කරන්න, උදාහරණයක් ලෙස, img-බාල්දිය, සහ, වඩාත්ම වැදගත්, වස්තූන් වෙත ප්රවේශය කියවන්න අපි එය ප්රසිද්ධ කරන්නෙමු - එසේ නොමැතිනම් ටෙලිග්රාම් අපගේ පින්තූර නොදකිමු. අපි අනෙක් සියලුම ක්ෂේත්ර නොවෙනස්ව තබමු. බොත්තම ඔබන්න බාල්දියක් සාදන්න.
මෙයින් පසු, සියලුම බාල්දි ලැයිස්තුව මේ වගේ දෙයක් විය හැකිය (මෙය ඔබේ එකම බාල්දිය නම්):
ඔබගේ විවිධ යෙදුම් සඳහා පින්තූර ගබඩා කිරීම සංවිධානය කිරීම සඳහා බාල්දියේ නම මත ක්ලික් කර එය තුළ ෆෝල්ඩරයක් සෑදීමට මම දැන් යෝජනා කරමි. උදාහරණයක් ලෙස, ටෙලිග්රාම් බොට් සඳහා බුද්ධිමත් සිතුවිලි කියලා ෆෝල්ඩරයක් හැදුවා tg-bot-smart-thoughts (කිසිවක් නැත, මම මෙම කේතය තේරුම් ගන්නෙමි). එකත් හදන්න.
දැන් ඔබට ෆෝල්ඩරයේ නම මත ක්ලික් කරන්න, එයට ගොස් ගොනු උඩුගත කරන්න:
සහ ගොනු නාමය මත ක්ලික් කිරීමෙන් - එය ලබා ගන්න URL එක අපගේ බොට්හි භාවිතය සඳහා, සහ පොදුවේ - ඕනෑම තැනක (නමුත් මෙය ප්රකාශයට පත් නොකරන්න URL එක අනවශ්ය, සිට ගමනාගමනය වස්තුව ගබඩා කිරීම අය කෙරේ).
මූලික වශයෙන් ඇත්තේ එපමණයි වස්තුව ගබඩා කිරීම. එහි ගොනු උඩුගත කිරීමට ප්රේරකයක් ඔබ දුටු විට කුමක් කළ යුතු දැයි දැන් ඔබ දැන ගනු ඇත.
වෙබ්හුක්
දැන් අපි ස්ථාපනය කරන්නෙමු webhook - i.e. bot හට සේවාදායකයෙන් යාවත්කාලීනයක් (උදාහරණයක් ලෙස, පරිශීලකයෙකුගෙන් පණිවිඩයක්) ලැබුණු විට විදුලි පණිවුඩ අපේ Yandex කාර්යය ඉල්ලීමක් යවනු ලැබේ (ඉල්ලීම) දත්ත සමඟ. මෙන්න ඔබට ඔබේ බ්රවුසරයේ ලිපින ක්ෂේත්රයට ඇලවිය හැකි පේළියක් සහ පසුව පිටුව නැවුම් කරන්න (ඔබට මෙය කළ යුත්තේ එක් වරක් පමණි): https://api.telegram.org/bot{bot_token}/setWebHook?url={webhook_url}
අපි එය ප්රතිස්ථාපනය කරන්නෙමු {bot_token} අපේ බොට් එක හදනකොට ෆාදර් බොට් එකෙන් අපිට ලැබුණු ටෝකනයට, සහ {webhook_url} - මත URL එක අපේ Yandex කාර්යයන්. මිනිත්තුවක් ඉන්න! එහෙත් RossKomTsenzur රුසියානු සමූහාණ්ඩුවේ සැපයුම්කරුවන්ට ලිපිනයට සේවා සැපයීම තහනම් කරයි https://api.telegram.org
. ඔව් ඒක නිවැරදියි. නමුත් යමක් ඉදිරිපත් කරන්න. නිදසුනක් වශයෙන්, ඔබට යුක්රේනයේ, ඊශ්රායලයේ හෝ කැනඩාවේ මේ ගැන ඔබේ ආච්චිගෙන් ඇසිය හැකිය - එහි “රොස්කොම් වාරණයක්” නොමැත, සහ මිනිසුන් එය නොමැතිව ජීවත් වන්නේ කෙසේදැයි දෙවියන් වහන්සේ පමණක් දනී. එහි ප්රතිඵලයක් වශයෙන්, webhook එකක් ස්ථාපනය කිරීමේදී ඉල්ලීම්-ප්රතිචාරය මෙලෙස දිස්විය යුතුය:
අපි පරීක්ෂණ කරනවා. එය "කැඩපත" විය යුතුය.
මෙය සත්යයයි. අපගේ සුභ පැතුම් - දැන් Yandex කාර්යය බවට පත් විය විදුලි පණිවුඩ-බොට්!
බුද්ධිමත් සිතුවිලි
දැන් අපි Smart Thoughts කරමු. කේතය විවෘතව පවතින අතර එය මත පවතී
ව්යාපෘතිය ක්ලෝන කර පරායත්තතා ස්ථාපනය කරන්න:
git clone https://github.com/stmike/tg-bot-smart-thoughts.git
cd tg-bot-smart-thoughts
npm i
ගොනුවට අවශ්ය වෙනස්කම් කරන්න index.js (විකල්ප; ඔබට කිසිවක් වෙනස් කිරීමට අවශ්ය නැත). නිර්මාණය කරන්න තැපැල්- සංරක්ෂිතය, ගොනුව සමඟ index.js සහ ෆෝල්ඩරය node_modules ඇතුළත, උදාහරණයක් ලෙස, නම යටතේ smart.zip.
දැන් අපගේ කොන්සෝලය වෙත යන්න Yandex කාර්යයන්, ටැබ් එක තෝරන්න ZIP සංරක්ෂිතය, බොත්තම ඔබන්න ගොනුවක් තෝරන්න, සහ අපගේ සංරක්ෂිතය බාගන්න smart.zip. අවසාන වශයෙන්, ඉහළ දකුණු කෙළවරේ, බොත්තම ක්ලික් කරන්න අනුවාදය සාදන්න.
තත්පර කිහිපයකින්, කාර්යය යාවත්කාලීන වූ විට, අපි අපගේ බොට් නැවත පරීක්ෂා කරන්නෙමු. දැන් ඔහු තවදුරටත් "කැඩපත්" නොවේ, නමුත් බුද්ධිමත් සිතුවිලි ලබා දෙයි!
අදට එච්චරයි. තවත් ලිපි පහතින්. ඔබ මෙය කියවීමට කැමති නම්, නව ලිපි පිළිබඳ දැනුම්දීම් සඳහා දායක වන්න. ඔබට මෙහි දායක විය හැක, හෝ විදුලි පණිවුඩ-නාලිකාව
යොමු
පරිත්යාග
මූලාශ්රය: www.habr.com