/ / Cách xây dựng một Slack Bot chào đón bằng Python

Cách xây dựng một Slack Bot chào đón bằng Python

Chào mừng người dùng mới đến với kênh của bạn khiến họ cảm thấy như ở nhà, nhưng việc theo dõi từng người dùng tham gia có thể là một nhiệm vụ mệt mỏi. Đó là lúc bot chào mừng của Slack xuất hiện. Bot sẽ gửi thông báo chào mừng được cá nhân hóa tới mọi người dùng kênh mới. Nó luôn trực tuyến do đó sẽ không có tin nhắn chào mừng muộn.


Bạn sẽ tìm hiểu cách thiết lập thông tin xác thực cho bot của mình, lắng nghe các sự kiện trong Slack và gửi tin nhắn lại cho người dùng.


Tạo một Slack Bot và lấy mã thông báo API của nó

Tạo một tài khoản Slack hoặc đăng nhập vào tài khoản hiện có của bạn. Sau đó, tạo một không gian làm việc Slack mới để kiểm tra bot của bạn trước khi bạn cài đặt nó trong không gian làm việc đang hoạt động của mình.

Trang đăng nhập không gian làm việc Slack

Đăng nhập vào không gian làm việc mới của bạn. Slack tự động tạo một kênh chung và ngẫu nhiên cho bạn.

Không gian làm việc chùng được gọi là Không gian thử nghiệm

Lưu ý phần Ứng dụng ở dưới cùng bên trái của không gian làm việc. Đây là nơi bot của chúng tôi sẽ xuất hiện khi bạn tạo nó. Điều hướng đến trang web API Slack.

Trang chủ API Slack

Bấm vào Tạo một ứng dụng. Tạo ứng dụng từ đầu trong cửa sổ hiện ra.

Cửa sổ bật lên để tạo ứng dụng trong Slack API

Đặt tên cho ứng dụng của bạn và chọn không gian làm việc bạn muốn phát triển ứng dụng.

Nhập tên ứng dụng và không gian làm việc trong trang web API chậm

Sau đó bấm vào Tạo ứng dụng cái nút. Nhấp vào sẽ chuyển hướng bạn đến trang chứa thông tin cơ bản về ứng dụng của bạn. Lưu ý bí mật ký trong thông tin đăng nhập ứng dụng. Bot của bạn sẽ sử dụng bí mật ký để xác minh rằng một sự kiện đến từ Slack và không bị giả mạo trong quá trình truyền.

Trang thông tin cơ bản về ứng dụng Slack

Chuyển đến tính năng OAuth & Quyền.

Trang tính năng OAuth & Quyền của ứng dụng Slack

Trong OAuth & Quyền, điều hướng đến Phạm vi mã thông báo bot. Đây là nơi bạn sẽ thêm các quyền mà bot của bạn có thể làm trong không gian làm việc của bạn. thêm người dùng: đã đọc phạm vi. Phạm vi này sẽ cho phép bot của bạn xem những người trong không gian làm việc của bạn. Ngoài ra, thêm các trò chuyện: viết phạm vi sẽ cho phép bot của bạn gửi tin nhắn đến không gian làm việc.

Trang API Slack hiển thị phạm vi mã thông báo bot

Điều hướng trở lại thông tin cơ bản của bot của bạn và nhấp vào Cài đặt vào Không gian làm việc.

Trang thông tin cơ bản về bot Slack hiển thị cài đặt vào không gian làm việc

Nhấp vào cho phép trên trang tiếp theo xuất hiện. Bây giờ bạn đã hoàn tất việc cài đặt bot vào không gian làm việc của mình. Điều hướng đến tính năng OAuth & Quyền. Lưu ý Mã thông báo OAuth của Người dùng Bot mà Slack tạo sau khi cài đặt. Bot sẽ hiển thị trong phần ứng dụng của không gian làm việc của bạn.

Không gian làm việc Slack với bot được hiển thị trong phần ứng dụng

Bây giờ bạn đã cài đặt bot vào không gian làm việc của mình, bạn có thể viết mã để điều khiển nó.

Chuẩn bị môi trường của bạn

Bạn cần làm quen với kiến ​​thức cơ bản về Python để làm theo các mẫu mã này.

Tạo một môi trường ảo mới và một .env tài liệu. Bạn sẽ sử dụng tệp .env để lưu trữ mã thông báo và bí mật ký tên mà bạn cần giữ kín. Bạn không nên tải tệp .env lên bất kỳ nền tảng công cộng nào.

Chạy lệnh sau trong terminal để cài đặt các thư viện cần thiết:

 pip install slack-sdk pathlib dotenv flask slackeventsapi 

Thư viện slack-sdk sẽ cung cấp cho bạn các công cụ để xây dựng các tích hợp và ứng dụng Slack, bao gồm các phương thức API, ứng dụng khách API Web và OAuth. pathlib và dotenv sẽ giúp bạn tải các biến môi trường. bình sẽ giúp bạn xử lý các yêu cầu và phản hồi HTTP. Slackeventsapi sẽ cung cấp cho bạn một trình lắng nghe sự kiện để nhận và xử lý các sự kiện từ Slack.

Nhập các thư viện cần thiết

Tạo một tệp Python mới và bắt đầu bằng cách nhập các thư viện bạn đã cài đặt trước đó để bạn có thể sử dụng chức năng của chúng trong mã của mình.

 import slack_sdk as slack
import os
from pathlib import Path
from dotenv import load_dotenv
from flask import Flask
from slackeventsapi import SlackEventAdapter

Mô-đun os của Python đi kèm với ngôn ngữ, vì vậy bạn không cần cài đặt nó. SlackEventAdapter là một lớp từ mô-đun slackeventsapi xử lý các sự kiện từ API Slack.

Thiết lập Bot Slack

Tạo hai biến trong tệp .env. Đặt tên cho một SLACK_BOT_TOKEN và gán cho nó Mã thông báo OAuth của Người dùng Bot. Đặt tên cho cái còn lại là SLACK_SIGNING_SECRET và gán bí mật ký cho nó. Quay lại tệp Python và tạo một đối tượng Flask. Sau đó tải các biến môi trường từ tệp .env bằng hàm load_dotenv từ mô-đun dotenv.

 app = Flask(__name__)
env_path = Path('.') / '.env'
load_dotenv(dotenv_path=env_path)

Tạo một cá thể slack_event_adapter. Nó sẽ xử lý các sự kiện từ API Slack, sử dụng biến môi trường SLACK_SIGNING_SECRET để xác thực các yêu cầu.

 slack_event_adapter = SlackEventAdapter(os.environ['SLACK_SIGNING_SECRET'],
                                        '/slack/events', app)

/slack/events là điểm cuối mà API Slack sẽ sử dụng để gửi sự kiện.

Tạo một phiên bản WebClient sẽ gửi tin nhắn đến API Slack. Thực hiện lệnh gọi API để truy xuất ID của bot.

 client = slack.WebClient(token=os.environ['SLACK_BOT_TOKEN'])
BOT_ID = client.api_call("auth.test")['user_id']

Thiết lập tin nhắn bạn sẽ gửi cho người dùng mới tham gia kênh. Khởi tạo một bộ trống sẽ theo dõi những người dùng được hoan nghênh.

 GREETING_MESSAGE = "Hello {user_name}, welcome to the {channel_name} " 
                   "channel! We're excited to have you here."
welcomed_users = set()

Bạn có thể tùy chỉnh lời chào theo ý thích của mình.

Tạo một chức năng để xử lý sự kiện “Thành viên đã tham gia kênh”

Thiết lập một trình lắng nghe sự kiện. Nó sẽ lắng nghe sự kiện member_joined_channel.

 @slack_event_adapter.on('member_joined_channel')

Xác định chức năng mà bạn sẽ gọi khi người dùng tham gia kênh. Sử dụng chức năng để trích xuất ID người dùng và ID kênh từ dữ liệu sự kiện. Kiểm tra xem người dùng có phải là người mới đối với kênh hay không. Nếu không, hãy lấy thông tin về người dùng và kênh bằng cách sử dụng lớp WebClient. Tạo một tin nhắn chúc mừng cá nhân. Gửi lời chào đến kênh

 def handle_member_joined_channel(event_data):
    user_id = event_data['event']['user']
    channel_id = event_data['event']['channel']

    
    if user_id not in welcomed_users:
        welcomed_users.add(user_id)

        user_info = client.users_info(user=user_id)
        user_name = user_info['user']['name']

        channel_info = client.conversations_info(channel=channel_id)
        channel_name = channel_info['channel']['name']

        greeting = GREETING_MESSAGE.format(user_name=user_name,
                                          channel_name=channel_name)

        client.chat_postMessage(channel=channel_id, text=greeting)

event_data chứa tất cả thông tin về sự kiện mà người dùng đã tham gia kênh.

Khởi động ứng dụng Flask và chạy tập lệnh. Nếu chạy dưới dạng chương trình chính (không được nhập dưới dạng mô-đun), hãy chạy ở chế độ gỡ lỗi và lắng nghe trên cổng 5000.

 if __name__ == "__main__":
    app.run(debug=True, port=5000)

Chế độ gỡ lỗi tự động tải lại ứng dụng khi bạn thay đổi mã. Không sử dụng chế độ gỡ lỗi trong môi trường sản xuất, chế độ này có thể làm lộ thông tin nhạy cảm và khiến ứng dụng của bạn dễ bị tấn công. Chạy ứng dụng của bạn. Nó sẽ chạy như một máy chủ cục bộ trên cổng 5000.

Kết nối logic với Bot của bạn

Sau khi tạo logic, bây giờ bạn cần kết nối với bot trong không gian làm việc của mình. Điều này sẽ cho phép nó sử dụng logic này để thực hiện các thao tác trong không gian làm việc của bạn. Bắt đầu bằng cách tải xuống và chạy Ngrok. Ngrok sẽ giúp bạn hiển thị máy chủ web cục bộ của mình với internet.

Sau khi chạy nó, hãy sử dụng lệnh sau để ánh xạ địa chỉ máy chủ cục bộ của bạn sang địa chỉ của Ngrok.

 ngrok http 500 

Sao chép địa chỉ Ngrok ánh xạ tới máy chủ cục bộ của bạn.

Ngrok chạy đầu ra

Điều hướng đến trang web API Slack. Bên dưới Đăng ký sự kiện tính năng, kích hoạt sự kiện. Dưới URL yêu cầu nhập địa chỉ Ngrok theo sau là /slack/sự kiện. Điều này sẽ trỏ đến điểm cuối của bạn.

Trang đăng ký sự kiện API Slack

Sau đó đăng ký sự kiện member_joined_channel. Điều này sẽ thông báo cho bot của bạn mỗi khi người dùng tham gia một kênh. Bấm vào Lưu thay đổi. Slack sẽ tự động thêm phạm vi bạn cần để đăng ký sự kiện này. Mỗi khi bạn thay đổi một phạm vi, bạn sẽ phải cài đặt lại ứng dụng của mình trong không gian làm việc.

Trang API Slack hiển thị cài đặt lại bot Slack

Nhấp vào cài đặt lại ứng dụng của bạn.

Kiểm tra Bot của bạn

Chuyển đến không gian làm việc của bạn. Chuyển đến kênh bạn muốn sử dụng bot. Gửi tin nhắn trực tiếp đến bot. Ví dụ @Welcoming Bot. Một lời nhắc thêm bot vào kênh sẽ bật lên. Nhấp vào thêm.

Giờ đây, mỗi khi người dùng mới tham gia kênh, bot sẽ gửi thông báo chào mừng.

Slack bot gửi tin nhắn chào mừng trong một kênh

Hình ảnh trên cho thấy bot đang chào đón người dùng mới đến với kênh.

Tận dụng tối đa không gian làm việc chùng của bạn

Slack bot không phải là cách duy nhất để mở rộng chức năng của nền tảng nhắn tin Slack. Phương pháp khác là tích hợp các công cụ của bên thứ ba với Slack. Họ cung cấp chức năng bổ sung trong nền tảng.

Làm quen với những tích hợp này vì chúng sẽ tăng năng suất của bạn trong Slack.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *