рд╕рдмрд╕реЗ рдЫреЛрдЯреА рдХреЗ рд▓рд┐рдП рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЪреИрдЯ рдмреЙрдЯ



рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдЪреИрдЯ рдмреЙрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП 100,500 рддрд░реАрдХреЗ рдФрд░ рдЙрдкрдХрд░рдг рд╣реИрдВред рдФрд░ рд╣рдорд╛рд░рд╛ рддрд░реАрдХрд╛ рд╡реИрд╕реЗ рднреА рдЖрд╕рд╛рди рд╣реЛрдЧрд╛, рдХрдо рд╕реЗ рдХрдо рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдХреНрд▓рд┐рдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗред рдмреЙрдЯ рдЦреБрдж рдкрд╛рдЗрдерди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рд╕реНрд╡рд┐рдлреНрдЯреА рдЗрдВрдЬрди рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рд╣рдореЗрд╢рд╛ рд╣рдорд╛рд░реЗ рдЧрд╛рдЗрдб рдореЗрдВ, рдЖрдкрдХреЛ рдЕрдЬрдЧрд░ рдпрд╛ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред рдЖрдк рд╕рднреА рдХреА рдЬрд░реВрд░рдд рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдХреБрдЫ рдЪрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рд░реВрд╕ рдореЗрдВ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдПрдХ рд╡реАрдкреАрдПрди рднреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕рд░реНрд╡рд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдЬрдмрдХрд┐ рд╕рдм рдХреБрдЫ рдорд╛рдирдХ рд╣реИ - рдПрдХ рдмреЙрдЯ рд░рдЬрд┐рд╕реНрдЯрд░


рдПрдХ рдирдпрд╛ рдмреЙрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░реЗ рдмреЙрдЯ рд╕реЗ рдкреВрдЫрдирд╛ рд╣реЛрдЧрд╛ред рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЦреЛрд▓реЗрдВ рдФрд░ @BotFather bot рдХреЛ рдвреВрдВрдвреЗрдВ рдпрд╛ рд▓рд┐рдВрдХ рдЦреЛрд▓реЗрдВред рдЕрдЧрд▓рд╛, рдЯрд╛рдЗрдк / рдиреНрдпреВрдмреЙрдЯ рдФрд░ рдмреЛрдЯрд╛рдкрд╛ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред рдиреНрдпреВрдирддрдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдмреЙрдЯ рдХреЛ рдПрдХ рдкреНрд░рджрд░реНрд╢рди рдирд╛рдо рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рджреЗрдирд╛ рд╣реЛрдЧрд╛ред рдмреЙрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдЯреЛрдХрди рдФрд░ URL рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЙрдиреНрд╣реЗрдВ рдХрд╣реАрдВ рдмрдЪрд╛рдУред

рдирд╛рд╡


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдо рд╕реНрд╡рд┐рдлреНрдЯреА рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХрд░рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдБ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдХрдВрдЯреНрд░реЛрд▓ рдкреИрдирд▓ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░реЗрдВ:

  1. рдлрд╝рдВрдХреНрд╢рдВрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ -> рдирдпрд╛ рдлрд╝рдВрдХреНрд╢рдиред рд░реЗрдкреЛ (рдЯреЗрдореНрдкреНрд▓реЗрдЯ) рдЯреИрдм рд╕реЗ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЪрдпрдирд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ github.com/swiftycloud/swifty.demo рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдпрд╣ рд╣рдорд╛рд░реА рдЕрдкрдиреА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдлрдВрдХреНрд╢рди рдЯреЗрдореНрдкреНрд▓реЗрдЯ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВред
  2. рд╕рд┐рдВрдкрд▓ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдЯрдмреЙрдЯ (рдЕрдЬрдЧрд░) рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдиреЗрдХреНрд╕реНрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
  3. рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдмреЙрдЯ рдХрд╛ рдирд╛рдо рджрд░реНрдЬ рдХрд░реЗрдВ, swifty_bot (рдЗрд╕рдХреЗ рдмрд╛рдж рдореИрдВ рдЗрд╕реЗ рдирд╛рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛) рдФрд░ Create рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

рддрд╛рдХрд┐ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдмреЙрдЯ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХреЗрдВ, рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рд▓рд┐рдВрдХ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЯреНрд░рд┐рдЧрд░ рдЯреИрдм рдкрд░ рдЬрд╛рдПрдВ, рдЯреНрд░рд┐рдЧрд░ рдЬреЛрдбрд╝реЗрдВ -> рд░реАрд╕реНрдЯ рдПрдкреАрдЖрдИ (URL) рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдкрд░рд┐рдгрд╛рдореА рд▓рд┐рдВрдХ рдХреЛ рд╕рд╣реЗрдЬреЗрдВред

рдлрд┐рд░, рдЖрдкрдХреЛ рдЯреЗрд▓реАрдлрд╝реЛрди рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдмреЙрдЯ рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рддрдХ рдкрд╣реБрдВрдЪрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕реНрд╡рд┐рдлреНрдЯреА рдХреА рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЗрдХрд╛рдИ рд╣реИ - рдЦрд╛рддрд╛, рдЬреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЙрдЧрд┐рди-рдкрд╛рд╕рд╡рд░реНрдб рдмрдВрдбрд▓ рдпрд╛ рдЯреЛрдХрдиред

  1. рдЦрд╛рддреЗ рдЪреБрдиреЗрдВ -> рдЦрд╛рддрд╛ рдмрдирд╛рдПрдБред рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдПрдкреАрдЖрдИ рдкреНрд░рдХрд╛рд░, SWIFTYBOT рдирд╛рдо (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрд░рдХреЗрд╕) рдФрд░ рдЙрд╕ рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдЬреЛ рдЖрдкрдХреЛ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рдерд╛ред
  2. рдХрд╛рд░реНрдп рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ -> swifty_bot -> рдкреНрд░рд╡реЗрд╢ -> рдЬреЛрдбрд╝реЗрдВред рдЦрд╛рддреЛрдВ рдФрд░ рдПрдХ рд╕реНрд╡рд┐рдлреНрдЯрдмреЙрдЯ рдЦрд╛рддреЗ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдЖрдкрдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд╛рд╕ рдЕрдм рдЖрдкрдХреЗ рдПрдХреНрд╕реЗрд╕ рдЯреЛрдХрди рддрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдкрд╣реБрдВрдЪ рд╣реИред

рдЕрджреНрдпрддрдиред рдзреНрдпрд╛рди рджреЛ! рдЦрд╛рддрд╛ рдХреЗ рд▓рд┐рдП SWIFTYBOT рдирд╛рдо рдпрд╣рд╛рдБ рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ:

BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMSWIFTYBOT_TOKEN')) 

рдпрджрд┐ рдЖрдк рдПрдХ рдЕрд▓рдЧ рдЦрд╛рддрд╛ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛрдб рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХрд╛ рдЦрд╛рддрд╛ рдирд╛рдо MYOWNBOT рд╣реИ, рддреЛ рдЖрдкрдХрд╛ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

 BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMMYOWNBOT_TOKEN')) 

рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдирд╛рдо ACC_TELEGRAMMYOWNBOT_TOKEN рдХреИрд╕реЗ рдмрдирддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдЦрд╛рддрд╛ рд╕рдВрдкрддреНрддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рд╕реНрд╡рд┐рдлреНрдЯреА рдореЗрдВ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрди? рдпрд╣рд╛рдВ:

  • рдПрд╕реАрд╕реА - рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЬрд┐рд╕реЗ рдЖрдк рдкреНрд░рдХрд╛рд░ рдЦрд╛рддреЗ рдХреЗ рд╕рдВрд╕рд╛рдзрди рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ;
  • TELEGRAM - рдЦрд╛рддреЗ рдХрд╛ рдкреНрд░рдХрд╛рд░;
  • рдбрд╛рдЙрдирд▓реЛрдб - рдЦрд╛рддрд╛ рдирд╛рдо;
  • рдЯреЛрдХрди - рдЦрд╛рддрд╛ рд╕рдВрдкрддреНрддрд┐;

рдкрд░рд┐рдгрд╛рдореА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдХреЛрдб:

 import json import os import sys import requests BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMSWIFTYBOT_TOKEN')) def Main(req): try: data = json.loads(req.body.encode()) message = str(data["message"]["text"]) chat_id = data["message"]["chat"]["id"] first_name = data["message"]["chat"]["first_name"] response = "Please /start, {}".format(first_name) if "start" in message: response = "Hello {}! Type /help to get list of actions.".format(first_name) if "help" in message: response = "/about - get information about Swifty" if "about" in message: response = ("Swifty is the serverless platform that allows startups, developers and enterprises to develop and run application backend with minimal time-to-market, costs and without infrastructure management.\n" "Start creating your backend at\n" "https://swifty.cloud") data = {"text": response.encode("utf8"), "chat_id": chat_id} url = BASE_URL + "/sendMessage" requests.post(url, data) except Exception as e: print(e) return {"statusCode": 200}, None 

рдпрд╣ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдмреЙрдЯ рд╣реИ рдЬреЛ рдХрдорд╛рдВрдб / рд╕реНрдЯрд╛рд░реНрдЯ, / рд╣реЗрд▓реНрдк рдФрд░ / рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдЕрдкрдиреА рдХрд┐рд╕реА рднреА рдЯреАрдо рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдмреЙрдЯ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ


рдЕрдм рдЖрдкрдХреЛ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдмреЙрдЯ рдХрд┐рд╕ рд▓рд┐рдВрдХ рдкрд░ рд╣реИред рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЦреЛрд▓рдиреЗ рдФрд░ рдЙрд╕рдореЗрдВ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рдЖрдкрдХреЗ_API_URL рдХреЛ рдПрдкреАрдЖрдИ рд▓рд┐рдВрдХ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдерд╛, рдФрд░ рдПрдХ рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдЖрдкрдХрд╛_рдХреЗрд╕реА_рдПрд╕рдЯреАрдХреЗрдПрдиред

 curl -XPOST https://api.telegram.org/botYOUR_ACCESS_TOKEN/setWebhook?url=YOUR_API_URL 


рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд░рд╣рд╛, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрди рдЬреИрд╕рд╛ рдХреБрдЫ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:

 { "ok": true, "result": true, "description": "Webhook was set" } 

рдпрджрд┐ рдЖрдк рд░реВрд╕ рдореЗрдВ рд╣реИрдВ, рддреЛ рд╕рдмрдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡реАрдкреАрдПрди рд╕рдХреНрд╖рдо рд╣реИред

рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ


рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореЗрдВ рдЕрдкрдиреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдмреЙрдЯ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, / рд╢реБрд░реВ рдпрд╛ / рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЖрджреЗрд╢реЛрдВ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдмрдзрд╛рдИред рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдХреГрдкрдпрд╛ рдпрд╣рд╛рдБ рдпрд╛ рд╣рдорд╛рд░реЗ рд╕реБрд╕реНрдд рдЪреИрдирд▓ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ ред

рдЖрдк рдпрд╣ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рддреИрдпрд╛рд░ рд╣реИрдВ рддреЛ рдпрд╣ рдХреИрд╕реЗ рддреИрдпрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рд╣рдорд╛рд░реЗ рдмреЙрдЯ рдХреЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдореЗрдВ swifty_test_bot рдирд╛рдо рд╕реЗ рдорд┐рд▓рддрд╛ рд╣реИред рдЖрдкрдХрд╛ рдзрдиреНрдпрд╡рд╛рдж

рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рдРрдк рдмрдирд╛рдПрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ swifty.cloud рдореЗрдВ рдХрд╣рддреЗ рд╣реИрдВред

Source: https://habr.com/ru/post/hi432914/


All Articles