Slack یک ابزار راحت و محبوب است که می توانید با دستورات خود، متناسب با سازمان خود، آن را ارتقا دهید.
Slack ابزاری است که به تیم ها امکان ارتباط و همکاری را می دهد. یکی از ویژگی های کلیدی آن استفاده از دستورات اسلش است. این دستورات اقدامات یا ادغام های خاصی را در پلتفرم ایجاد می کنند.
در حالی که Slack چندین دستور اسلش داخلی را در اختیار شما قرار می دهد، می توانید با استفاده از API Slack دستورات سفارشی ایجاد کنید. سپس میتوانید فرمان سفارشی را برای انجام یک کار خاص زمانی که کاربر آن را راهاندازی میکند، پیکربندی کنید.
چرا یک دستور اسلش سفارشی در Slack ایجاد کنیم؟
دستورات اسلک داخلی ممکن است نیازهای خاص تیم یا سازمان شما را برآورده نکند. با ایجاد دستورات اسلش سفارشی، می توانید تجربه شخصی تری را برای تیم خود ایجاد کنید. این به نوبه خود تعامل تیم را افزایش می دهد.
راه اندازی یک برنامه Slack
برای پیگیری، باید با استفاده اولیه از Slack راحت باشید. در مرورگر به حساب Slack خود وارد شوید و یک فضای کاری جدید ایجاد کنید. شما از این فضای کاری برای آزمایش برنامه های خود قبل از استفاده از آنها در فضای کاری تیم خود استفاده خواهید کرد.
برگه دیگری را باز کنید و به وب سایت Slack API بروید.
روی دکمه Create an app کلیک کنید. در صفحه بعدی که ظاهر می شود، گزینه ایجاد یک برنامه از ابتدا را انتخاب کنید.
نام برنامه را بگذارید و فضای کاری را که برنامه در آن کار می کند انتخاب کنید.
روی دکمه Create App کلیک کنید. این شما را به صفحه ای هدایت می کند که حاوی اطلاعات اولیه در مورد برنامه شما است.
در بخش ویژگیها، به ویژگی OAuth & Permissions بروید، سپس به سمت پایین به Bot Token Scopes بروید. یک چت اضافه کنید: محدوده بنویسید برای برنامه خود. این محدوده به برنامه شما اجازه می دهد تا پیام هایی را به فضای کاری ارسال کند.
به قسمت OAuth Tokens for Your Workspace بروید و روی دکمه Install to Workspace کلیک کنید.
در صفحه بعدی که ظاهر می شود، روی دکمه Allow کلیک کنید. این برنامه را در فضای کاری شما نصب می کند.
ایجاد یک دستور اسلش سفارشی با استفاده از Slack API
پس از راه اندازی برنامه Slack، باید یک دستور سفارشی برای کاری که می خواهید انجام دهید ایجاد کنید. به عنوان مثال، یک دستور اسلش که یک جوک را به کاربر برمی گرداند. به ویژگی Slash Commands بروید. روی دکمه Create New Command کلیک کنید.
دستور، URL درخواست و توضیحات کوتاه دستوری را که می خواهید ایجاد کنید پر کنید. Request URL نقطه پایانی است که Slack درخواست POST را زمانی که کاربر دستور را راه اندازی می کند به آن ارسال می کند. از URL لوکال هاست به عنوان نگهدارنده استفاده کنید. بعداً این URL را تغییر خواهید داد.
روی Save کلیک کنید. وقتی ذخیره میکنید، Slack به طور خودکار دامنه دستوراتی را برای برنامه شما اضافه میکند. این محدوده به برنامه شما اجازه می دهد تا میانبرها و دستورات اسلش را اضافه کند که افراد در فضای کاری شما می توانند از آنها استفاده کنند. برای تغییر دامنه ها باید برنامه را دوباره نصب کنید. روی دکمه نصب مجدد برنامه خود کلیک کنید.
در صفحه ای که بعد ظاهر می شود، روی اجازه نصب مجدد برنامه در فضای کاری خود کلیک کنید.
پیکربندی رفتار Slash Command
هر IDE پایتون را راه اندازی کنید. یک محیط مجازی جدید ایجاد کنید. یک فایل پایتون جدید و یک فایل env جدید ایجاد کنید. در ترمینال دستور زیر را برای نصب کتابخانه های مورد نیاز اجرا کنید.
pip install python-dotenv requests Flask slack-bolt
کتابخانه python-dotenv به شما این امکان را می دهد که متغیرهای محیطی را در فایل .env بارگذاری کنید. کتابخانه درخواست ها به شما امکان می دهد درخواست های HTTP را انجام دهید و Flask درخواست های HTTP ورودی را مدیریت می کند و پاسخ ها را برمی گرداند. Slack-bolt درخواستهای Slack دریافتی را مدیریت میکند.
فایل .env را باز کنید و دو متغیر محیطی ایجاد کنید. آنها را به ترتیب BOT_TOKEN و SIGNING_SECRET نامگذاری کنید. به وب سایت Slack API بروید. در زیر اطلاعات پایه برنامه خود، رمز امضا را کپی کنید و از آن برای مقداردهی اولیه متغیر BOT_TOKEN استفاده کنید. به ویژگی OAuth & Permissions بروید و Bot User OAuth Token را کپی کنید. از آن برای مقداردهی اولیه متغیر SIGNING_SECRET استفاده کنید.
توکن ربات یک شناسه منحصربهفرد است که هنگام برقراری تماسهای API، برنامه شما را با API Slack تأیید میکند. رمز امضا تأیید میکند که درخواستهای ورودی به برنامه شما از Slack میآیند.
کد منبع کامل در یک مخزن GitHub موجود است.
کتابخانه ها و ماژول های مورد نیاز را وارد کنید.
import os
from pathlib import Path
from dotenv import load_dotenv
import requests
from flask import Flask, request, jsonify
from slack_bolt import App
from slack_bolt.adapter.flask import SlackRequestHandler
یک نمونه جدید از یک برنامه Flask ایجاد کنید.
app = Flask(__name__)
با استفاده از تابع load_dotenv() متغیرهای محیط را از فایل .env بارگیری کنید.
env_path = Path('.') / '.env'
load_dotenv(dotenv_path=env_path)
یک نمونه جدید از یک برنامه Slack با استفاده از کلاس App از کتابخانه slack_bolt ایجاد کنید.
slack_app = App(
token=os.environ['BOT_TOKEN'],
signing_secret=os.environ['SIGNING_SECRET']
)
یک تابع کنترل مسیر ایجاد کنید که درخواستهای ورودی به نقطه پایانی /slack/command را مدیریت میکند. هنگامی که نقطه پایانی یک درخواست POST دریافت می کند، داده های بدن درخواست را تجزیه می کند. سپس بررسی می کند که آیا دستور /joke است یا خیر. اگر چنین است، تابع get_joke() را فراخوانی می کند و با نتیجه دستور، پاسخ JSON را به Slack برمی گرداند.
@app.route("/slack/command", methods=["POST"])
def command():
# Parse request body data
data = request.form
# Call the appropriate function based on the slash command
if data["command"] == "/joke":
message = get_joke()
else:
message = f"Invalid command: {data['command']}"
# Return response to Slack
return jsonify({"text": message})
تابعی ایجاد کنید که یک درخواست GET به icanhazdadjoke API ارسال کند تا یک جوک تصادفی در قالب JSON بازیابی شود. سپس جوک را به عنوان یک رشته برمی گرداند.
def get_joke():
url = "https://icanhazdadjoke.com/"
headers = {"Accept": "application/json"}
response = requests.get(url, headers=headers, timeout=5)
joke = response.json()["joke"]
return joke
یک نمونه جدید از یک شی SlackRequestHandler ایجاد کنید که درخواست های دریافتی از Slack را مدیریت می کند.
handler = SlackRequestHandler(slack_app)
بررسی کنید که آیا اسکریپت مستقیماً اجرا می شود یا خیر و اگر اجرا می شود، برنامه Flask را در پورت 5000 راه اندازی کنید.
if __name__ == "__main__":
# Start the Flask app on port 5000
app.run(port=5000, debug=True)
برنامه را اجرا کنید تا سرور روی لوکال هاست اجرا شود.
برای اینکه برنامه با Slack ارتباط برقرار کند، به URL نیاز دارید که بتواند از طریق اینترنت به آن دسترسی داشته باشد. ngrok را دانلود و اجرا کنید. نرم افزار ngrok به شما امکان می دهد یک URL عمومی امن ایجاد کنید که ترافیک را به یک وب سرور در حال اجرا بر روی رایانه شما تونل می کند.
برای دریافت URL عمومی دستور زیر را اجرا کنید:
ngrok http 5000
تصویر زیر نشانی اینترنتی عمومی در ngrok را نشان می دهد که با رنگ سفید برجسته شده است.
URL را کپی کنید و به وب سایت Slack API بروید. بر روی ویژگی Slash Commands کلیک کنید. دستور /joke را ویرایش کنید و مکاننمای URL درخواست را با URL عمومی خود جایگزین کنید. برای اشاره به نقطه پایانی خود، /slack/events را در انتهای URL اضافه کنید.
به فضای کاری خود بروید، سپس دستور /joke را تایپ کرده و ارسال کنید. در پاسخ باید یک جوک ببینید:
با سایر ویژگی های Slack آشنا شوید
Slack دارای ویژگی های زیادی فراتر از دستورات Slash است. آشنایی با این ویژگی ها به شما امکان می دهد تا نحوه کار آنها را درک کنید.
سپس می توانید به دنبال راه هایی برای سفارشی کردن آنها با نیازهای فضای کاری خود باشید. این کار باعث افزایش بهره وری تیم شما می شود.