рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рдХреЛрдб рдСрдирд▓рд╛рдЗрди рдЪрд▓рд╛рдПрдВ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
рдХреЛрдб рдЪрд▓рд╛рдПрдВрджреЛрдиреЛрдВ рд╣реА рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдЖрдкрдХреА рдмрд┐рдЬрд╝рдиреЗрд╕ рд▓реЙрдЬрд┐рдХ рдХреЛрдбрд┐рдд рдХреЗ рд╕рд╛рде рдПрдХ DataLab рд╡рд░реНрдХрдмреБрдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:

3. Slack рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛
рддреЛ, Slack рдРрдк: рдкреВрд░рд╛ред рдмрд┐рдЬрд╝рдиреЗрд╕ рд▓реЙрдЬрд┐рдХ: рдкреВрд░рд╛ред Python рдиреЛрдЯрдмреБрдХ рдХреЛ Slack рд╕реЗ рдЗрдВрдЯреАрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рджреЛ рдХрд╛рдо рдХрд░рдиреЗ рд╣реИрдВ: рд╡рд░реНрдХрдмреБрдХ рдореЗрдВ Slack OAuth рдЯреЛрдХрди рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рдФрд░ Slack рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ Python рдХреЛрдб рд▓рд┐рдЦрдирд╛ред
Slack OAuth рдЯреЛрдХрди рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ
рд╣рдорд╛рд░реА Python рдиреЛрдЯрдмреБрдХ рдХреЛ рдЖрдкрдХреЗ Slack рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рдкрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП OAuth рдЯреЛрдХрди рдЪрд╛рд╣рд┐рдПред рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЗрд╕ OAuth рдЯреЛрдХрди рдХреЛ рдЕрдкрдиреА рдиреЛрдЯрдмреБрдХ рдХреА рдХрд┐рд╕реА рдХреЛрдб рд╕реЗрд▓ рдореЗрдВ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдиреА рдиреЛрдЯрдмреБрдХ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡реЗ OAuth рдЯреЛрдХрди рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рддрд░реАрдХрд╛ рдпрд╣ рднреА рдХрд╣реЗрдЧрд╛ рдХрд┐ рд╣рд░ рдЙрд╕ рд╡рд░реНрдХрдмреБрдХ рдореЗрдВ рдЖрдкрдХреЛ рдпрд╣реА рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рджреЛрд╣рд░рд╛рдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдЖрдк Slack рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрд╕ OAuth рдЯреЛрдХрди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВ, рддреЛ рдЖрдкрдХреЛ рд╣рд░ рд╡рд░реНрдХрдмреБрдХ рдореЗрдВ рдЬрд╛рдХрд░ рдПрдбрд┐рдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдПрдХ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рд╕реНрдХреЗрд▓реЗрдмрд▓ рддрд░реАрдХрд╛ рд╣реИ Slack OAuth рдЯреЛрдХрди рдХреЛ рддрдерд╛рдХрдерд┐рдд рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ред рдЬрдм рдЖрдк рдЗрд╕ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВрдЧреЗ, рддреЛ рдпрд╣ рдЖрдкрдХреЗ Python рд╕рддреНрд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЕрдкрдиреА рд╡рд░реНрдХрдмреБрдХ рдореЗрдВ:
- рдмрд╛рдПрдБ рддрд░рдл тАЬEnvironmentтАЭ рдЯреИрдм рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- тАЬEnvironment VariablesтАЭ рдХреЗ рдкрд╛рд╕ рдкреНрд▓рд╕ рдЖрдЗрдХрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- тАЬAdd Environment VariablesтАЭ рдореЙрдбреЗрд▓ рдореЗрдВ:
- тАЬNameтАЭ рдХреЛ
SLACK_TOKENрдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ - тАЬValueтАЭ рдлрд╝реАрд▓реНрдб рдореЗрдВ, рдЗрд╕ рдЧрд╛рдЗрдб рдХреЗ рдЪрд░рдг 1 рдореЗрдВ рдорд┐рд▓рд╛ OAuth рдЯреЛрдХрди рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХрд░реЗрдВред
- тАЬEnvironment Variables Set NameтАЭ рдХреЛ тАЬSlackтАЭ рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ (рдпрд╣ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)

рд╕рд╛рд░реЗ рдлрд╝реАрд▓реНрдб рднрд░рдиреЗ рдХреЗ рдмрд╛рдж, тАЬCreate,тАЭ тАЬNext,тАЭ рдФрд░ рдЕрдВрдд рдореЗрдВ тАЬConnectтАЭ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЖрдкрдХрд╛ DataLab рд╕рддреНрд░ рд░рд┐рд╕реНрдЯрд╛рд░реНрдЯ рд╣реЛрдЧрд╛, рдФрд░ SLACK_TOKEN рдЕрдм рдЖрдкрдХреА рд╡рд░реНрдХрдмреБрдХ рдореЗрдВ рдПрдХ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред рдЖрдк рдЗрд╕реЗ рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ Python рдХреЛрдб рд▓рд┐рдЦрдХрд░ рдФрд░ рдЪрд▓рд╛рдХрд░ рдЬрд╛рдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ:
import os
slack_token = os.environ["SLACK_TOKEN"]
print(slack_token)
рдпрджрд┐ рдЖрдк рд╡рд╣реА рд╕рд░реНрд╡рд┐рд╕ рдЕрдХрд╛рдЙрдВрдЯ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдХрд┐рд╕реА рджреВрд╕рд░реА рд╡рд░реНрдХрдмреБрдХ рдореЗрдВ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓ рдлрд┐рд░ рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ: рдЖрдк рдЗрд╕реЗ рдЕрдиреНрдп рд╡рд░реНрдХрдмреБрдХреНрд╕ рдореЗрдВ рднреА рд░реА-рдпреВрдЬрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Slack рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП Python рдХреЛрдб
SLACK_TOKEN рддреИрдпрд╛рд░ рд╣реЛрдиреЗ рдкрд░, рдЕрдкрдиреА рдиреЛрдЯрдмреБрдХ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рд╕реНрдирд┐рдкреЗрдЯ рдЬреЛрдбрд╝реЗрдВ рдЬреЛ рдЖрдкрдХреЗ Slack рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рдореЗрдВ #bot-updates рдЪреИрдирд▓ рдкрд░ рдПрдХ рд╕реИрдВрдкрд▓ рд╕рдВрджреЗрд╢ рднреЗрдЬреЗ:
import os
from slack_sdk import WebClient
message = "This is my first Slack message from Python!"
# Set up a WebClient with the Slack OAuth token
client = WebClient(token=os.environ["SLACK_TOKEN"])
# Send a message
client.chat_postMessage(
channel="bot-updates",
text=message,
username="Bot User"
)
рдпрд╣ рдХреЛрдб Slack рдХрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Python SDK рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреЛрдб рдЪрд▓рд╛рдПрдБ! рдЖрдкрдХреЛ рдпрд╣ рд╕рдВрджреЗрд╢ рдЕрдкрдиреЗ Slack рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП:

рдпрд╣ рдПрдХ рдЕрд░реНрдерд╣реАрди рд╕реИрдВрдкрд▓ рд╕рдВрджреЗрд╢ рдерд╛, рд▓реЗрдХрд┐рди рдЖрдк рдЕрдкрдиреА рдмрд┐рдЬрд╝рдиреЗрд╕ рд▓реЙрдЬрд┐рдХ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднреА рд╕рдВрджреЗрд╢ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рд╕реИрдВрдкрд▓ рд╡рд░реНрдХрдмреБрдХ рдореЗрдВ рдХрд┐рдпрд╛:
message = f"Total value of my portfolio on {portfolio_df.index[-1]:%B %d, %Y} is ${latest_total:,.2f}."
рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛:

рдЕрдВрдд рдореЗрдВ, рдЖрдк DL_WORKBOOK_ID рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреА рд╡рд░реНрдХрдмреБрдХ рдХрд╛ рд▓рд┐рдВрдХ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рд▓реЛрдЧ Slack рд╕реЗ рд╕реАрдзреЗ рдЙрд╕ DataLab рд╡рд░реНрдХрдмреБрдХ рдкрд░ рдЬрд╛ рд╕рдХреЗрдВ рдЬреЛ рдпрд╣ рд╕рдВрджреЗрд╢ рдЬрдирд░реЗрдЯ рдХрд░ рд░рд╣реА рд╣реИ:
message = f"""
Total value of my portfolio on {portfolio_df.index[-1]:%B %d, %Y} is ${latest_total:,.2f}.
For the full analysis, check <https://www.datacamp.com/workbook/w/{os.environ.get('DL_WORKBOOK_ID', 'invalid')}/edit|this workbook> (updates daily)
"""
рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реЛрдЧрд╛:

4. рдСрдЯреЛрдореЗрдЯ рдХрд░реЗрдВ!
рдЖрдкрдиреЗ рдПрдХ Python рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд▓реА рд╣реИ рдЬреЛ рдПрдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреА рд╣реИ рдФрд░ рдЙрд╕рдХрд╛ рд╕рд╛рд░ Slack рдкрд░ рднреЗрдЬрддреА рд╣реИ, рдФрд░ рдпрджрд┐ рд▓реЛрдЧ рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣реЗрдВ рддреЛ рдкреВрд░реА рдиреЛрдЯрдмреБрдХ рдХрд╛ рдмреИрдХрд▓рд┐рдВрдХ рднреА рджреЗрддреА рд╣реИред рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдФрд░ рднреА рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЖрдк рдЗрд╕ рдиреЛрдЯрдмреБрдХ рдХреЛ рд╣рд░ рд╣рдлреНрддреЗ рдпрд╛ рд╣рд░ рджрд┐рди рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХреЗрдВ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдирдП рдкрд░рд┐рдгрд╛рдо рдЕрдкрдиреЗ-рдЖрдк рдорд┐рд▓рддреЗ рд░рд╣реЗрдВ? рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ! DataLab scheduled runs рд╕рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдпрд╣реА рдХрд░ рд╕рдХреЗрдВред
- рдКрдкрд░ рдХреА рдореЗрдиреВ рдмрд╛рд░ рдореЗрдВ Run > Schedule Run рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
- рд╢реЗрдбреНрдпреВрд▓ рдХреЛ рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:
- рдиреЛрдЯрдмреБрдХ рдХреЛ рдбреЗрд▓реА рдпрд╛ рд╡реАрдХрд▓реА рд╢реЗрдбреНрдпреВрд▓ рдкрд░ рдЪрд▓рдирд╛ рд╕реЗрдЯ рдХрд░реЗрдВ, рдФрд░ рд╕рдордп рд╡ (рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ рд╣реЛрдиреЗ рдкрд░) рд╕рдкреНрддрд╛рд╣ рдХрд╛ рджрд┐рди рдЪреБрдиреЗрдВ
- рд╡реЗ DataCamp рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рд╣рд░ рдмрд╛рд░ рдиреЛрдЯрдмреБрдХ рдХреЗ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЦрддреНрдо рд╣реЛрдиреЗ, рддреНрд░реБрдЯрд┐ рдЖрдиреЗ, рдпрд╛ рджреЛрдиреЛрдВ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдпрд╣ рд╕реЗрдЯ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдЕрд╕рдлрд▓ рд╣реЛрдиреЗ рдкрд░ рдЖрдкрдХреЛ рд╕рдВрджреЗрд╢ рдорд┐рд▓реЗ, рддрд╛рдХрд┐ рдЬрд╝рд░реВрд░рдд рд╣реЛрдиреЗ рдкрд░ рдЖрдк рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХреЗрдВред

рдпрджрд┐ рдКрдкрд░ рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреА рддрд░рд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдиреЛрдЯрдмреБрдХ рдЕрдм рд╣рд░ рджрд┐рди рд╕реНрдерд╛рдиреАрдп рд╕рдордпрд╛рдиреБрд╕рд╛рд░ рд╕реБрдмрд╣ 9:30 рдкрд░ рдЪрд▓реЗрдЧреА, рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рд░ рд╕реБрдмрд╣ Slack рдХреЗ #bot-updates рдЪреИрдирд▓ рдореЗрдВ рдПрдХ рд╕рдВрджреЗрд╢ рдкреЛрд╕реНрдЯ рд╣реЛрдЧрд╛ред
рдСрдЯреЛрдореЗрдЯ рдХрд░реЗрдВ рдпрд╛ рдирд╣реАрдВ
рд╣рд░ рдХрд╛рдо рдХреЛ рдСрдЯреЛрдореЗрдЯ рдХрд░рдирд╛ рд╕рд╛рд░реНрдердХ рдирд╣реАрдВ рд╣реЛрддрд╛тАФрдпрд╣ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╡рд╣ рдХрд┐рддрдиреА рдмрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЙрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓реА рдХрд░рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ Python рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рдпрд╣ рд╕рд╛рдлрд╝ рд╣реЛрддрд╛ рд╣реИ: рдорд╛рди рд▓реЗрдВ рдЖрдкрдХреЛ рд╣рд░ рд╕рд╛рд▓ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреА рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓реА 20 рдорд┐рдирдЯ рд▓рдЧрддреЗ рд╣реИрдВред рдпрджрд┐ рдЙрд╕реА рдХрд╛рдо рдХреЗ рд▓рд┐рдП Python рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдЖрдкрдХреЛ рдЖрдзрд╛ рджрд┐рди рд▓рдЧ рдЬрд╛рдП, рддреЛ рдЗрд╕ рдХрд╛рдо рдХреЛ рдСрдЯреЛрдореЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рдЬреЛ рд╕рдордп рд▓рдЧрд╛ рд╣реИ, рдЙрд╕реЗ рд╡рд╛рдкрд╕ рдкрд╛рдиреЗ рдореЗрдВ рдЖрдкрдХреЛ рдХрдИ рд╕рд╛рд▓ рд▓рдЧ рдЬрд╛рдПрдБрдЧреЗ!
рдЗрд╕реЗ рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдмрдЦреВрдмреА рд╕рдореЗрдЯрд╛ рдЧрдпрд╛ рд╣реИ:

рдХреНрдпрд╛ рдСрдЯреЛрдореЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рд▓рдЧрд╛рдирд╛ рд╡рд╛рдЬрд┐рдм рд╣реИ? рд╕реНрд░реЛрдд
рддреЛ рдпрджрд┐ рдХреЛрдИ рдРрд╕рд╛ рдХрд╛рдо рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд░реЛрдЬрд╝ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдкрд╣рд▓реЗ 5 рдорд┐рдирдЯ рд▓реЗрддрд╛ рдерд╛, рддреЛ рдЖрдк рдЙрд╕реЗ рдСрдЯреЛрдореЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдЕрдзрд┐рдХрддрдо 6 рджрд┐рди рдЦрд░реНрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЙрд╕рд╕реЗ рдХрдо рд╕рдордп рдореЗрдВ рдСрдЯреЛрдореЗрд╢рди рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдиреЗ рд╕рдордп рдмрдЪрд╛ рд▓рд┐рдпрд╛ (5 рд╡рд░реНрд╖реЛрдВ рдореЗрдВ рдЧрд┐рдирд╛ рдЬрд╛рдП рддреЛ)ред
рдирд┐рд╖реНрдХрд░реНрд╖
DataLab рд╕реЗ Slack рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреА рд╢реБрд░реБрдЖрддреА рд╕реЗрдЯрдЕрдк рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдмрд╛рд░ рдЬрдм рд╕рдм рдХреБрдЫ рдареАрдХ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реЛ рдЬрд╛рдП рдФрд░ Slack рдЯреЛрдХрди DataLab рдореЗрдВ рд╕реНрдЯреЛрд░ рд╣реЛ, рддреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ Python рдХреА рджреЛ рд▓рд╛рдЗрдиреЛрдВ рдХрд╛ рдХрд╛рдо рд░рд╣ рдЬрд╛рддрд╛ рд╣реИ: рдЗрддрдирд╛ рд╕рд░рд▓! рдФрд░ рдлрд╛рдпрджреЗ рдкрд░ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ: рдЕрдм рдЖрдк virtually рдХрд┐рд╕реА рднреА Python рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдСрдЯреЛрдореЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреЗ рд╕реНрдЯреЗрдХрд╣реЛрд▓реНрдбрд░реНрд╕ рдХреЛ рд╡рд╣реАрдВ рд╕реВрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рд╡реЗ рд╣реИрдВ: Slack рдореЗрдВред
рдмрд╛рд░-рдмрд╛рд░ рд╡рд╣реА рдЙрдмрд╛рдК рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдорд╛рдЗрдВрдбрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдЬрд╝рдорд╛рдирд╛ рдЧрдпрд╛тАФрдЕрдм рд╢рдХреНрддрд┐рд╢рд╛рд▓реА, рдСрдЯреЛрдореЗрдЯреЗрдб рд╡рд░реНрдХрдлрд╝реНрд▓реЛрдЬрд╝ рдХрд╛ рд╕рдордп рд╣реИ, рд╡реЛ рднреА рдЯреВрд▓реНрд╕ рдХреЗ рдмреАрдЪ рдЙрдЫрд▓-рдХреВрдж рдХрд┐рдП рдмрд┐рдирд╛ред рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП рдмрд╕ рдкреНрдпрд╛рд░ DataLabред
DataCamp рдХреЗ Intermediate Python рдХреЛрд░реНрд╕ рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ Python рдХреМрд╢рд▓ рдХреЛ рдЕрдЧрд▓реЗ рд╕реНрддрд░ рдкрд░ рд▓реЗ рдЬрд╛рдПрдБред рдбреЗрдЯрд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ рдЙрдиреНрдирдд Python рдлреАрдЪрд░реНрд╕ рдореЗрдВ рдЕрдкрдирд╛ рдЬреНрдЮрд╛рди рдмрдврд╝рд╛рдПрдБред рдЕрднреА рдЕрдкрдиреА рд▓рд░реНрдирд┐рдВрдЧ рдЬрд░реНрдиреА рдЬрд╛рд░реА рд░рдЦреЗрдВ!

рдлрд┐рд▓рд┐рдк DataCamp рдХреЗ рдХрдИ рд▓реЛрдХрдкреНрд░рд┐рдп Python, SQL, рдФрд░ R рдкрд╛рдареНрдпрдХреНрд░рдореЛрдВ рдХреЗ рдкреАрдЫреЗ рдХреЗ рдЙрддреНрд╕рд╛рд╣реА рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдлрд┐рд▓рд┐рдк DataLab, DataCamp рдХреА рдПрдЖрдИ-рд╕рдХреНрд╖рдо рдбреЗрдЯрд╛ рдиреЛрдЯрдмреБрдХ, рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдлрд┐рд▓рд┐рдк рдХреЗ рдкрд╛рд╕ рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХрд▓ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдФрд░ рдЖрд░реНрдЯрд┐рдлрд┐рд╢рд┐рдпрд▓ рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕ рдореЗрдВ рдбрд┐рдЧреНрд░рд┐рдпрд╛рдБ рд╣реИрдВред
рд╣рд░ рдиреМрдХрд░реА рдХреЗ рд╕рд╛рде рдХреБрдЫ рдиреАрд░рд╕, рдмрд╛рд░-рдмрд╛рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рдо рдЖрддреЗ рд╣реИрдВред рдЪрд╛рд╣реЗ рдЖрдк рдПрдХ рд╕рдкреЛрд░реНрдЯ рдПрдЬреЗрдВрдЯ рд╣реЛрдВ рдЬрд┐рд╕реЗ рд╣реЗрд▓реНрдк рд░рд┐рдХреНрд╡реЗрд╕реНрдЯреНрд╕ рдореЗрдВ рдЖрдо рдереАрдореНрд╕ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреА рд╣реЛ, рдПрдХ рдЯреАрдо рдореИрдиреЗрдЬрд░ рд╣реЛрдВ рдЬрд┐рд╕реЗ рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рд╣реЛрдВ, рдпрд╛ рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЗрдВрдЬреАрдирд┐рдпрд░ рд╣реЛрдВ рдЬрд┐рд╕реЗ рдпрд╣ рдЬрд╛рдБрдЪрдирд╛ рд╣реЛ рдХрд┐ рдореБрдЦреНрдп рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдареАрдХ рдЪрд▓ рд░рд╣реА рд╣реИрдВ рдпрд╛ рдирд╣реАрдВтАФрдпреЗ рд╕рдм рдХрд╛рдо рдЖрдкрдХреЛ рдмрд╛рд░-рдмрд╛рд░ рдХрд░рдиреЗ рдкрдбрд╝рддреЗ рд╣реИрдВ: рдорд╣реАрдиреЗ рдореЗрдВ, рд╣рдлреНрддреЗ рдореЗрдВ, рд░реЛрдЬрд╝, рд╢рд╛рдпрдж рд╣рд░ рдШрдВрдЯреЗ рднреА!
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрдк рдЗрд╕ рджреЛрд╣рд░рд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рдо рдХрд╛ рдХрдо-рд╕реЗ-рдХрдо рдХреБрдЫ рд╣рд┐рд╕реНрд╕рд╛ рдСрдЯреЛрдореЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред Python рдЗрд╕рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░реАрди рдЯреВрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдпрд╣ рдПрдХ рдЬрдирд░рд▓-рдкрд░реНрдкрдЬрд╝ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИ рдЬреЛ (рдмрд╣реБрдд рд╕рд╛рд░реЗ) рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддреА рд╣реИ рдФрд░ рдСрдЯреЛрдореЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рднреА рдЖрд╕рд╛рди рдмрдирд╛рддреА рд╣реИред рдкрд░рдлреЙрд░реНрдореЗрдВрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ? рдмрд┐рдирд╛ рдСрдЯреЛрдореЗрд╢рди рдХреЗ, рдЖрдкрдХреЛ рд╕рднреА рдЬрд╝рд░реВрд░реА рдирдВрдмрд░ рдЬреБрдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП 4 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдбреИрд╢рдмреЛрд░реНрдбреНрд╕ рджреЗрдЦрдиреЗ рдкрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рдмреЙрд╕ рдХреЛ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдСрдЯреЛрдореЗрд╢рди рдХреЗ рд╕рд╛рде, рдПрдХ Python рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдкрдХреА рдЬрд╝рд░реВрд░рдд рдХрд╛ рд╕рд╛рд░рд╛ рдбреЗрдЯрд╛ рдЦреАрдВрдЪрддреА рд╣реИ, рдЬрд╝рд░реВрд░реА рд╕рд╛рд░-рд╕рдВрдЦреНрдпрд╛ рдЪреБрдирддреА рд╣реИ, рдЙрдиреНрд╣реЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреА рд╣реИ, рдФрд░ рдпрд╣ рд╕рдВрджреЗрд╢ рдЖрдкрдХреЗ рджрдЦрд▓ рдХреЗ рдмрд┐рдирд╛ рднреЗрдЬ рджреЗрддреА рд╣реИред рдпрд╣ рди рд╕рд┐рд░реНрдл рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдмрд▓реНрдХрд┐ рдЧрд▓рддрд┐рдпреЛрдВ рдФрд░ рднреВрд▓-рдЪреВрдХ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рднреА рдХрдо рд╣реЛ рдЬрд╛рддреА рд╣реИ!
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рд╣рдо рдПрдХ рд╡рд┐рд╢реЗрд╖ рдХреЗрд╕ рджреЗрдЦреЗрдВрдЧреЗ: рдирд┐рд╡реЗрд╢ рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдХреА рд╕реНрдерд┐рддрд┐ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Python рдХреЛрдб рдЪрд▓рд╛рдирд╛ рдФрд░ рдЗрд╕ рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдХрд╛ рд╕рд╛рд░ SlackтАФрдПрдХ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдЯреАрдо рдХрдореНрдпреБрдирд┐рдХреЗрд╢рди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдотАФрдкрд░ рднреЗрдЬрдирд╛ред рд╣рдо Slack рдРрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ, рдЙрд╕ Slack рдРрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рд╡рд╛рд▓рд╛ Python рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рд┐рдЦрдиреЗ, рдФрд░ рдПрдХ рд╢реЗрдбреНрдпреВрд▓ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рднреА рдЬрд╝рд░реВрд░реА рдХрджрдо рдХрд╡рд░ рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЖрдкрдХрд╛ Python рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдЪрд▓ рд╕рдХреЗред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдирд┐рд╡реЗрд╢ рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЗрд╕ тАШрдмрд┐рдЬрд╝рдиреЗрд╕ рд▓реЙрдЬрд┐рдХтАЩ рдХреЛ рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ; Slack рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдХреЛрдб рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реА рд░рд╣реЗрдВрдЧреЗред
рд╣рдо рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ DataLab рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╕реАрдХреНрд░реЗрдЯреНрд╕ рдХреЛ рдПрдирд╡рд╛рдпрд░рдирдореЗрдВрдЯ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреА рдмрд┐рд▓реНрдЯ-рдЗрди рд╕реБрд╡рд┐рдзрд╛ рд╣реИ (рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо Slack рдРрдк рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗ) рдФрд░ рдХреБрдЫ рдХреНрд▓рд┐рдХ рдореЗрдВ рдЖрдкрдХреЗ Python рдХреЛрдб рдХреЛ рд╢реЗрдбреНрдпреВрд▓ рдХрд░рдиреЗ рдХреА рднреА рд╕реБрд╡рд┐рдзрд╛ рд╣реИред рд╕рд╛рде рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдПрдХ Slack рдЕрдХрд╛рдЙрдВрдЯ (рд╕рдВрджреЗрд╢ рдкреЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ рдПрдХ DataCamp рдЕрдХрд╛рдЙрдВрдЯ (DataLab рдХреЗ рд▓рд┐рдП) рдЪрд╛рд╣рд┐рдПтАФрджреЛрдиреЛрдВ рдЖрдк рдореБрдлреНрдд рдореЗрдВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ!
рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ!
1. Slack рдРрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рдЖрдк Slack рдРрдк рдХреЛ Slack рдХрд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдпрд╛ рдРрдб-рдСрди рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВред Slack рдореЗрдВ Google Docs, Jira, Dropbox, Zoom рдФрд░ рдЕрдирдЧрд┐рдирдд рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдРрдкреНрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдЖрдк Slack рдХреЗ рдЕрдВрджрд░ рд╣реА рдШрдЯрдирд╛рдУрдВ рдХреА рд╕реВрдЪрдирд╛рдПрдБ рдкрд╛ рд╕рдХреЗрдВ, рдФрд░ Slack рд╕реЗ рд╣реА рдЙрди рдРрдкреНрд╕ рдореЗрдВ рдХреБрдЫ рдХрд╛рд░реНрд░рд╡рд╛рдЗрдпрд╛рдБ рднреА рдХрд░ рд╕рдХреЗрдВред рд╣рдорд╛рд░реЗ рдЫреЛрдЯреЗ рд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рднреА рдПрдХ Slack рдРрдк рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рд╣рдо рд╣рд░ Slack рдРрдк рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдмреЙрдЯ рдпреВрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Slack рдкрд░ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХреЗрдВред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ Slack рдЕрдХрд╛рдЙрдВрдЯ рд╣реИ, рдЖрдк рдРрд╕реЗ Slack рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рдХреЗ рд╕рджрд╕реНрдп рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдбрдорд┐рди рдПрдХреНрд╕реЗрд╕ рд╣реИ, рдФрд░ рдЖрдк рдЗрд╕реА Slack рдЕрдХрд╛рдЙрдВрдЯ рд╕реЗ рд╕рд╛рдЗрди рдЗрди рд╣реИрдВред рдЕрдЧрд░ рдирд╣реАрдВ, рддреЛ slack.com рдкрд░ рдЬрд╛рдПрдБ рдФрд░ рдирдпрд╛ рдЕрдХрд╛рдЙрдВрдЯ рдФрд░ рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рдмрдирд╛рдПрдБред
рдЗрд╕рдХреЗ рдмрд╛рдж, https://api.slack.com/app рдкрд░ рдЬрд╛рдПрдБ, рдЬреЛ рдЖрдкрдХрд╛ Slack рдРрдкреНрд╕ рдбреИрд╢рдмреЛрд░реНрдб рд╣реИред рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рджрд┐рдЦреЗрдЧрд╛:
тАЬCreate an AppтАЭ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
тАЬFrom scratchтАЭ рдЪреБрдиреЗрдВред рдЕрдЧрд▓реА рд╕реНрдХреНрд░реАрди рдореЗрдВ, рдЕрдкрдиреЗ рдРрдк рдХреЗ рд▓рд┐рдП рдПрдХ рдирд╛рдо рджреЗрдВ, рдЬреИрд╕реЗ тАЬPython Messenger,тАЭ рдФрд░ рд╡рд╣ рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рдЪреБрдиреЗрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдпрд╣ рдРрдк рдбреЗрд╡рд▓рдк рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЖрдкрдХреЗ рдХреЗрд╕ рдореЗрдВ рдпрд╣ рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рдЕрд▓рдЧ рд╣реЛрдЧрд╛)ред
Create app рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЕрдм рдЖрдк рдЕрдкрдиреЗ рдирдП рдмрдирд╛рдП рдЧрдП рдРрдк рдХреЗ рд╣реЛрдордкреЗрдЬ рдкрд░ рдкрд╣реБрдБрдЪреЗрдВрдЧреЗ, рдЬрд╣рд╛рдБ рдЖрдк рдРрдк рдХреА рд╕рд╛рд░реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВтАФрдмреЗрд╕рд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рд▓реЗрдХрд░ рдпрд╣ рддрдп рдХрд░рдиреЗ рддрдХ рдХрд┐ рдФрд░ рдХреМрди рдЗрд╕ рдРрдк рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдлреАрдЪрд░реНрд╕ред рдЗрд╕рд╕реЗ рдШрдмрд░рд╛рдПрдБ рдирд╣реАрдВ! рд╣рдореЗрдВ рд╕рд┐рд░реНрдл рдХреБрдЫ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реА рдмрджрд▓рдиреА рд╣реЛрдВрдЧреАред
тАЬOAuth & PermissionsтАЭ рдЯреИрдм рдкрд░ рдЬрд╛рдПрдБ, Scopes рдХрд╛рд░реНрдб рддрдХ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВ, рдФрд░ Bot Token Scopes рдХреЗ рдЕрдВрддрд░реНрдЧрдд тАЬAdd an OAuth ScopeтАЭ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ тАШchat:writeтАЩ, тАШchat:write.customizeтАЩ, тАШfiles:readтАЩ, тАШfiles:writeтАЩ рд╕реНрдХреЛрдкреНрд╕ рдЬреЛрдбрд╝реЗрдВ (рдЖрдкрдХреЛ тАЬAdd an OAuth ScopeтАЭ рдкрд░ рдХреБрд▓ рдЪрд╛рд░ рдмрд╛рд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛)ред
рдпреЗ рдмреЙрдЯ рдЯреЛрдХрди рд╕реНрдХреЛрдкреНрд╕ рдпрд╣ рдмрддрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдРрдк рдХрд╛ рдмреЙрдЯ рдпреВрдЬрд╝рд░ рдЖрдкрдХреЗ Slack рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛-рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдиреНрдпреВрдирддрдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП, рдРрдк рдХреЛ рд╕рд╛рд░реА рд╕рд╛рдордЧреНрд░реА рдФрд░ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдЕрдиреБрдорддрд┐рдпрд╛рдБ рджреЗрдиреЗ рдХреА рдмрдЬрд╛рдп, рд╣рдо рдЗрд╕реЗ рд╕рд┐рд░реНрдл (рдХрд╕реНрдЯрдорд╛рдЗрдЬрд╝реНрдб) рдЪреИрдЯ рд╕рдВрджреЗрд╢ рд▓рд┐рдЦрдиреЗ рдФрд░ рдлрд╛рдЗрд▓реЗрдВ рдЕрдкрд▓реЛрдб-рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рд╕рдВрджреЗрд╢реЛрдВ рдореЗрдВ рдЕрдЯреИрдЪрдореЗрдВрдЯ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣реЗрдВ рддреЛ рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ)ред
рдЕрдм рдЖрдк тАЬOAuth Tokens for Your WorkspaceтАЭ рд╕реЗрдХреНрд╢рди рддрдХ рдКрдкрд░ рд╕реНрдХреНрд░реЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ тАЬInstall to WorkspaceтАЭ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ:
рдЕрдЧрд▓реА рд╕реНрдХреНрд░реАрди рдореЗрдВ, рдЬреЛ рдЖрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рдЪрд░рдгреЛрдВ рдореЗрдВ рдЪреБрдиреЗ рдЧрдП рд╕реНрдХреЛрдкреНрд╕ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рджрд┐рдЦрд╛рддреА рд╣реИ, Allow рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдЖрдкрдХреЗ рд▓рд┐рдП тАЬBot User OAuth TokenтАЭ рдмрди рдЧрдпрд╛ рд╣реИ:
рдЗрд╕ Bot User OAuth Token рдХреА рдЬрд╝рд░реВрд░рдд рдЖрдкрдХреЛ рдЖрдЧреЗ рдкрдбрд╝реЗрдЧреА, рдЗрд╕рд▓рд┐рдП рдЕрдкрдирд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдмрдВрдж рди рдХрд░реЗрдВред
Slack рдЦреЛрд▓реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рд╕рд╛рдЗрдбрдмрд╛рд░ рдореЗрдВ рдирдпрд╛ рдРрдк тАЬPython MessengerтАЭ (рдпрд╛ рдЬреЛ рднреА рдЖрдкрдиреЗ рдирд╛рдо рджрд┐рдпрд╛ рд╣реИ) рджрд┐рдЦ рд░рд╣рд╛ рд╣реИ:
рдЕрдВрддрд┐рдо рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЪрд░рдг рд╣реИ рдЙрд╕ Slack рдЪреИрдирд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЬрд╣рд╛рдБ рдЖрдк рдСрдЯреЛрдореЗрдЯреЗрдб рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред #bot-updates рдирд╛рдо рдХрд╛ рдирдпрд╛ рдЪреИрдирд▓ рдмрдирд╛рдПрдБред рдЪреИрдирд▓ рдореЗрдВ /app рдЯрд╛рдЗрдк рдХрд░реЗрдВ рдФрд░ тАЬAdd apps to this channelтАЭ рдЪреБрдиреЗрдВ:
тАЬPython messengerтАЭ рдХреЗ рдмрдЧрд▓ рдореЗрдВ тАЬAddтАЭ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ тАЬPython MessengerтАЭ рдРрдк рдЪреИрдирд▓ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИред
рдмрд╕ рдЗрддрдирд╛ рд╣реА! рдЕрдм рдЖрдкрдХрд╛ Slack рдЪреИрдирд▓ тАЬPython MessengerтАЭ рдРрдк рдХреЗ рдЬрд╝рд░рд┐рдпреЗ, рдЬрдирд░реЗрдЯреЗрдб Bot User OAuth Token рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджреНрдпрдкрд┐ рдХрджрдо рдХрд╛рдлрд╝реА рдереЗ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рд░ Slack рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд░ рдХреА рд╕реЗрдЯрдЕрдк рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА Slack рд╡рд░реНрдХрд╕реНрдкреЗрд╕ рдореЗрдВ рдХрдИ Python рдкреНрд░реЛрдЧреНрд░рд╛рдореЛрдВ рд╕реЗ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреЛрдмрд╛рд░рд╛ рдирд╣реАрдВ рдХрд░рдиреА рд╣реЛрдЧреАред
2. Python рдореЗрдВ рдмрд┐рдЬрд╝рдиреЗрд╕ рд▓реЙрдЬрд┐рдХ рд▓рд┐рдЦреЗрдВ
рдпрд╣рд╛рдБ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдмрдврд╝рд┐рдпрд╛ рдХрд╛рдо! Slack рдРрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рдЕрдм рдордЬрд╝реЗрджрд╛рд░ рд╣рд┐рд╕реНрд╕рд╛: Python рд▓рд┐рдЦрдирд╛ред рд╣рдо рдЕрдкрдиреЗ тАШрдмрд┐рдЬрд╝рдиреЗрд╕ рд▓реЙрдЬрд┐рдХтАЩ рдХреЗ рд▓рд┐рдП рдХреБрдЫ Python рдХреЛрдб рд▓рд┐рдЦрдиреЗ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдореМрдЬреВрджрд╛ рдХрд╛рдо рд╣рд▓ рд╣реЛ рд╕рдХреЗред
рдпрджрд┐ рдЖрдкрдХреЛ Python рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдкрд░ рдлрд┐рд░ рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреА рд╣реИ, рддреЛ рд╣рдорд╛рд░рд╛ Introduction to Python рдХреЛрд░реНрд╕ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ рд╕реНрдерд╛рди рд╣реИред
рдЖрдк рдпрд╛ рддреЛ рд╢реБрд░реВ рд╕реЗ рдПрдХ рдЦрд╛рд▓реА рд╡рд░реНрдХрдмреБрдХ рдмрдирд╛рдПрдБ, рдЬреЛ рддрдм рдЙрдкрдпреЛрдЧреА рд╣реИ рдЬрдм рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреМрди-рд╕рд╛ Python рдкреНрд░реЛрдЧреНрд░рд╛рдо рдСрдЯреЛрдореЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ Slack рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдпрджрд┐ рдЖрдк рдпрд╣рд╛рдБ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ рд╕реАрдЦрдиреЗ рдЖрдП рд╣реИрдВ, рддреЛ рдЖрдк рдЙрд╕ рд╕реИрдВрдкрд▓ рд╡рд░реНрдХрдмреБрдХ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдордиреЗ рдмрдирд╛рдИ рд╣реИ рдФрд░ рдЬреЛ рдЯреЗрдХ рд╕реНрдЯреЙрдХреНрд╕ рдХреЗ рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдХреЗ рдореВрд▓реНрдп рдХреЛ рдЯреНрд░реИрдХ рдХрд░рддреА рд╣реИред рд╣рд░ рджрд┐рди (рд╡реАрдХрдПрдВрдбреНрд╕ рдЫреЛрдбрд╝рдХрд░) рдирдпрд╛ рдбреЗрдЯрд╛ рдЖрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдбреЗрд▓реА рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдЙрдореНрдореАрджрд╡рд╛рд░ рд╣реИред