Mục lục:
- Quân nhu
- Bước 1: Cài đặt phần mềm cần thiết
- Bước 2: Tạo tài khoản Twilio
- Bước 3: Nhận Khóa API cho Dữ liệu COVID 19, Phim và Chương trình truyền hình
- Bước 4: Kết nối Python và Twilio qua Ngrok
- Bước 5: Kiểm tra ứng dụng của chúng tôi
- Bước 6: Nó hoạt động như thế nào và cải tiến trong tương lai:
- Bước 7: Ghi chú cuối cùng
Video: CovBot - một Chatbot dựa trên WhatsApp cho COVID 19 Thông tin và hơn thế nữa: 7 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
CoVbot là một chatbot dựa trên Whatsapp đơn giản và trực quan. Tính năng chính của bot là:
Nó có thể cung cấp cho bạn trạng thái mới nhất của COVID-19 ở quốc gia bạn chọn một cách đơn giản và trực quan.
Ngoài ra, bot có thể đề xuất các hoạt động thú vị để làm TẠI NHÀ như:
- Gợi ý Phim - Một bộ phim đáng xem trong danh sách Top 10 phim, với nội dung tổng quan ngắn gọn về cốt truyện và thời lượng. Vì danh sách này không được mã hóa cứng trong phần mềm nên sẽ luôn cung cấp cho bạn các bản cập nhật mới nhất dựa trên xu hướng hiện tại.
- Đề xuất chương trình truyền hình - Một chương trình truyền hình để xem từ các chương trình truyền hình phổ biến nhất, với tổng quan ngắn gọn về cốt truyện và xếp hạng. Vì danh sách này không được mã hóa cứng trong phần mềm nên sẽ luôn cung cấp cho bạn các bản cập nhật mới nhất dựa trên xu hướng hiện tại.
- Gợi ý Sách - Một cuốn sách nên đọc từ Danh sách Sách Top 10, với lời giới thiệu và hình ảnh bìa của cuốn sách.
- Tập luyện hàng ngày - Đây là video dựa trên lịch trình tập luyện trong 7 ngày do phòng tập thể dục CRANK cung cấp trên Tài khoản Instagram của họ.
Nếu bạn cảm thấy thích thú với Tài liệu hướng dẫn này, vui lòng xem xét bỏ phiếu cho nó trong Cuộc thi Tác giả Mục đầu tiên. (và vâng, đây là hướng dẫn đầu tiên của tôi vì vậy nếu có điều gì không rõ ràng hoặc cần giải thích thêm, vui lòng cho tôi biết trong phần bình luận và tôi có thể giúp bạn:)
Quân nhu
Dự án này chỉ là dự án dựa trên phần mềm, vì vậy bất kỳ ai làm theo hướng dẫn này với máy tính xách tay / máy tính để bàn / macOS / Linux và internet đều có thể hoàn thành dự án này. Tôi cũng sẽ bao gồm một phần chi tiết ở cuối để giải thích mã / quy trình chi tiết hơn cho những người có một số kinh nghiệm lập trình, Xin lưu ý rằng điều này không cần thiết để hoàn thành dự án
Mức độ khó khăn của dự án:
Không dễ nhưng cũng không khó
Phần cứng chúng tôi sẽ sử dụng:
- Máy tính xách tay / máy tính để bàn chạy Windows / macOS / Linux.
- Điện thoại di động có cài đặt WhatsApp Messenger
Phần mềm chúng tôi sẽ sử dụng:
- Ngôn ngữ lập trình Python
- ngrok - là một công cụ được sử dụng để cho phép chúng tôi truy cập vào máy chủ của mình từ bên ngoài mạng của chúng tôi
- Trình chỉnh sửa bạn chọn: (ví dụ: Notepad ++, Sublime Text, Vim, v.v.)
Bước 1: Cài đặt phần mềm cần thiết
Trong bước này, chúng tôi sẽ thực hiện như sau:
- Cài đặt Python> 3.6 và kiểm tra nó
- Cài đặt thư viện python bắt buộc
- Cài đặt ngrok
Nếu bạn đã cài đặt cả hai ứng dụng, bạn có thể bỏ qua bước này
Cài đặt Python:
Toàn bộ cơ sở mã phụ trợ / máy chủ cho dự án này được viết bằng Python 3.6. Do đó, để chạy các ứng dụng của mình, chúng ta cần cài đặt Python> 3.6 trên máy tính của mình. Làm theo hướng dẫn của CoreySchafer về cách cài đặt python cho Windows và macOS
Bạn có thể kiểm tra mọi thứ đã được cài đặt chính xác chưa bằng cách nhập nội dung sau vào cmd / Terminal:
python -c 'print (f "Hello World")'
Nếu mọi thứ đã được cài đặt chính xác, thì Hello World sẽ được in trên màn hình. Nếu bạn gặp lỗi cú pháp không hợp lệ, thì bạn đã cài đặt sai phiên bản python. Cài đặt phiên bản python> = 3.6
Cài đặt các thư viện python được yêu cầu bằng cách sử dụng pip:
Chúng tôi sẽ sử dụng các thư viện python sau để làm cho phần mềm của chúng tôi hoạt động:
- Flask - Đây là khung cho máy chủ của chúng tôi
- Twilio - Thư viện này cung cấp một cách để python giao tiếp với WhatsApp
- Yêu cầu - Thư viện này được sử dụng để yêu cầu dữ liệu từ các API
- BeautifulSoup4 - Thư viện này được sử dụng để thu thập thông tin từ các trang web
- lxml - Thư viện này được sử dụng kết hợp với BeautifulSoup để trích xuất thông tin có liên quan từ một trang web
Để cài đặt các thư viện này, bạn có thể làm như sau:
Mở CMD / Terminal và gõ lệnh sau:
pip cài đặt bình, twilio, yêu cầu, beautifulsoup4, lxml
HOẶC
Tải xuống tệp tin request.txt và mở một thiết bị đầu cuối trong thư mục chứa tệp và nhập:
pip install -r request.txt
Cài đặt ngrok
ngrok cho phép bạn hiển thị máy chủ chạy trên máy cục bộ của bạn với internet. Chỉ cần cho ngrok biết máy chủ của bạn đang nghe trên cổng nào.
Làm theo hướng dẫn trên trang web ngrok để cài đặt ngrok cho hệ điều hành bạn đang sử dụng.
Mẹo: Bước 3 của hướng dẫn không liên quan đến dự án này nên có thể bỏ qua
Bước 2: Tạo tài khoản Twilio
Trong bước này, chúng tôi sẽ thực hiện như sau:
- Đăng ký tài khoản Twilio
- Giới thiệu nhanh về các phần hữu ích trên Bảng điều khiển của Twilio
Đăng ký:
Trong dự án này, chúng tôi sẽ sử dụng API Twilio Whatsapp để kết nối chương trình python của chúng tôi với Whatsapp. Để có thể sử dụng Twilio API, trước tiên chúng ta cần tạo một tài khoản trên trang web chính thức của Twilio. Đối với tài khoản dùng thử, Twilio cung cấp khoản tín dụng miễn phí $ 15 để chúng tôi sử dụng.
Giới thiệu nhanh:
Khi bạn đã tạo tài khoản, Các phần thú vị nhất của bảng điều khiển Twilio cho dự án này là:
Trang tổng quan - Từ trang tổng quan, bạn có thể thấy số tiền tín dụng còn lại, bạn có thể chỉnh sửa tên dự án của mình và thay đổi ngôn ngữ lập trình
Tiểu mục Whatsapp trong phần SMS có thể lập trình - Từ phần Whatsapp của bảng điều khiển, bạn có thể truy cập vào mã tham gia cho bot, số Whatsapp chúng tôi sẽ sử dụng trong dự án để nói chuyện với bot của chúng tôi và cũng như thiết lập webhook. Thông tin chi tiết về tất cả những điều này sẽ được mô tả trong các bước tiếp theo
Bước 3: Nhận Khóa API cho Dữ liệu COVID 19, Phim và Chương trình truyền hình
Khóa API hoặc khóa giao diện lập trình ứng dụng là mã được các ứng dụng máy tính chuyển vào. Sau đó, chương trình hoặc ứng dụng gọi API hoặc giao diện lập trình ứng dụng để xác định người dùng, nhà phát triển hoặc chương trình gọi đến một trang web.
Chúng tôi sử dụng một API để lấy thông tin về Trạng thái, Phim và Chương trình truyền hình mới nhất của COVID 19. Để truy cập API, bạn cần một khóa cá nhân đối với mỗi người dùng. Trong bước này, chúng ta sẽ nhận được các phím này
Nhận Khóa API cho Dữ liệu COVID 19:
- Đăng nhập hoặc đăng ký tài khoản RapidAPI của bạn.
- Sau đó, chuyển đến API COVID-19 của Gramzivi
- Cuộn xuống phần "Tham số tiêu đề" của bảng điều khiển API.
- Khóa API của bạn sẽ hiển thị trong trường “X-RapidAPI-Key”.
Nhận Khóa API cho phim và dữ liệu chương trình truyền hình:
- Đăng nhập hoặc đăng ký tài khoản TMDB của bạn
- Sau đó, hãy chuyển đến cài đặt của bạn - API
- Cuộn xuống phần "API Key (v3 auth)"
- Khóa API của bạn sẽ hiển thị bên dưới nó
Tạo tệp "config.py"
Bây giờ chúng tôi sẽ tạo một tệp config.py để lưu trữ các khóa API của chúng tôi. Chúng tôi tạo một tệp riêng cho những thứ này, vì khóa API là thông tin bí mật và nếu bạn chia sẻ dự án của mình, bạn không nên chia sẻ khóa API của mình.
- Tạo một thư mục dự án mới
- Bên trong thư mục mới tạo, tạo một tệp mới có tên "config.py"
- Chỉnh sửa tệp này bằng trình chỉnh sửa bạn chọn (Sublime, Notepad ++) và sao chép và thay thế văn bản sau bằng thông tin liên quan có được ở bước trước:
session_key = "secret" # Điều này không an toàn.. nhưng chỉ để kiểm tra nó là được
quick_api_key = "" api_key = ""
Lưu các tập tin
Bước 4: Kết nối Python và Twilio qua Ngrok
Trong bước này, chúng tôi sẽ làm như sau:
- Tải xuống mã nguồn
- Thực thi chương trình và chuyển tiếp IP cục bộ đến một địa chỉ công cộng qua ngrok để chúng tôi có thể đưa ra yêu cầu đối với nó
- Định cấu hình tài khoản Twilio của chúng tôi để chuyển tiếp yêu cầu đến máy chủ của chúng tôi
Tải xuống mã nguồn cho bot:
Tải xuống tất cả tệp đính kèm trong thiết lập này vào thư mục dự án đã tạo ở bước cuối cùng.
Thực hiện chương trình:
Đi tới thư mục của mã nguồn trong CMD / terminal và thực hiện lệnh sau:
python server_main.py
Đảm bảo có "config.py" mà chúng tôi đã tạo ở bước trước, nếu không bạn sẽ gặp lỗi
Đầu ra phải là một cái gì đó như thế này:
* Đang cung cấp ứng dụng Flask "server_main" (tải chậm)
* Môi trường: sản xuất CẢNH BÁO: Đây là một máy chủ phát triển. Không sử dụng nó trong triển khai sản xuất. Thay vào đó, hãy sử dụng máy chủ WSGI sản xuất. * Chế độ gỡ lỗi: bật * Đang chạy trên https://127.0.0.1:5000/ (Nhấn CTRL + C để thoát) * Khởi động lại bằng stat * Trình gỡ lỗi đang hoạt động! * Mã PIN của trình gỡ lỗi: 740-257-236
Điều này có nghĩa là máy chủ của bạn đang chạy chính xác trên mạng cục bộ của bạn trên cổng 5000. Để làm cho máy chủ này có thể truy cập từ bên ngoài mạng cục bộ của bạn, chúng tôi sẽ sử dụng ngrok
Chuyển tiếp IP cục bộ đến một địa chỉ công cộng qua ngrok
Đi tới thư mục mà bạn đã tải xuống ngrok qua CMD / terminal và thực hiện lệnh sau:
ngrok http 5000
Đầu ra phải là một cái gì đó như thế này:
ngrok bởi @inconshreveable (Ctrl + C để thoát)
Trạng thái phiên trực tuyến Phiên hết hạn 7 giờ 59 phút Phiên bản 2.3.35 Khu vực Hoa Kỳ (chúng tôi) Giao diện web https://127.0.0.1:4040 Chuyển tiếp _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Chuyển tiếp _https://d44c955749bf.ngrok.io_ -> _https:// localhost: 5000_ Kết nối ttl opn rt1 rt5 p50 p90 0 0 0,00 0,00 0,00 0,00
Sao chép liên kết HTTP từ phần "Đang tải" (chỉ cho đến ngrok.io). (Tôi đã thêm dấu _ trong ví dụ này để tránh việc có thể chặn nó dưới dạng một liên kết)
Định cấu hình Twilio để sử dụng địa chỉ mới để chuyển tiếp yêu cầu máy chủ tới:
Bây giờ chúng tôi đã chuyển tiếp thành công máy chủ của mình để được truy cập công khai, chúng tôi cần định cấu hình Twilio để khi có yêu cầu bằng Twilio Whatsapp API, chúng tôi sẽ chuyển tiếp yêu cầu đến máy chủ của mình. Để làm điều này, chúng ta cần làm như sau:
- Đi tới phần Whatsapp trên Bảng điều khiển của Twilio
- Điều hướng đến phần phụ "Sanbox"
- Trong hộp văn bản "KHI CÓ TIN NHẮN", hãy dán liên kết HTTP từ ngrok được sao chép với phần mở rộng / sms (KHÔNG SAO CHÉP _ ở đầu và cuối):
_https://d44c955749bf.ngrok.io/sms_
Bây giờ mọi thứ cho chatbot đã được thiết lập. Trong bước tiếp theo, chúng tôi có thể kiểm tra xem mọi thứ có hoạt động chính xác hay không
Bước 5: Kiểm tra ứng dụng của chúng tôi
Trong bước này, chúng tôi sẽ làm như sau:
- Tham gia với bot của chúng tôi bằng mã truy cập
- Hãy thử ứng dụng của chúng tôi
Tham gia với bot của chúng tôi bằng mã truy cập
Trong dự án này, chúng tôi sẽ sử dụng Số hộp cát Whatsapp của Twilio cho bot Whatsapp của chúng tôi. Với mỗi người, con số này sẽ khác nhau. Bạn có thể tìm thấy số của mình như thế này:
- Đăng nhập vào tài khoản Twilio của bạn
- Đi tới Bảng điều khiển Twilio -> Phần Whatsapp -> Hộp cát
- Bạn sẽ thấy số Twilio Sandbox của mình với dòng chữ sau:
Mời bạn bè của bạn vào Hộp cát của bạn. Yêu cầu họ gửi tin nhắn WhatsApp tới:
Do chính sách bảo mật của Whatsapp, tất cả những ai muốn nói chuyện với bot tự động qua Whatsapp cần phải chọn tham gia một cách rõ ràng bằng cách sử dụng mã. Bạn có thể tìm ra mã của mình bằng cách xem trong phần giống như số hộp cát Twilio của bạn với văn bản:
Sau khi bạn đã có được Số Whatsapp Twilio Sandbox và mã chọn tham gia, để bắt đầu sử dụng bot, hãy chuyển đến điện thoại di động của bạn và làm như sau:
- Lưu "Số Whatsapp của Twilio Sandbox" vào địa chỉ liên hệ của bạn với tên của bạn (ví dụ: CovBot)
- Mở Whatsapp và gửi tin nhắn sau đến liên hệ đó:
tham gia
Bạn sẽ thấy một thông báo như thế này:
Twilio Sandbox: Của bạn đã sẵn sàng….
Điều này có nghĩa là bạn đã kết nối với bot của mình và sẵn sàng hỏi nó qs
Hãy thử ứng dụng của chúng tôi:
Để kiểm tra các tính năng khác nhau của bot sau khi bạn đã kết nối, hãy gửi thông báo sau tới bot:
Chào
Bạn sẽ thấy văn bản sau:
Chào mừng bạn đến với CoVbot!
Một chatbot đơn giản có thể cung cấp các bản cập nhật mới nhất của COVID-19 một cách đơn giản, nhanh chóng và dễ dàng. Vì tất cả chúng ta đều bị cách ly, nên bot có thể được sử dụng để đề xuất một số hoạt động thú vị nhằm tận dụng tối đa thời gian ở nhà khi chúng ta cố gắng giữ an toàn cho bản thân, bạn bè và gia đình. Chúng tôi hy vọng bạn sẽ thích nó và tìm thấy nó hữu ích! Gửi 4 để bắt đầu!
Bây giờ bạn có thể làm theo tùy chọn để thử các tính năng khác nhau của bot.
ĐÓ LÀ NÓ! Chatbot Whatsapp của bạn đã sẵn sàng !!!! Xin chúc mừng
Bước 6: Nó hoạt động như thế nào và cải tiến trong tương lai:
Phần này dành cho những người đã có một số kinh nghiệm lập trình python. Nếu không, bạn có thể bỏ qua phần này
Giải thích mã
Vòng lặp chính:
Khi một tin nhắn Whatsapp được gửi đến số Twilio của bạn, API Twilio sẽ thực hiện một yêu cầu ĐĂNG tới máy chủ của bạn mà bạn đã chỉ định. Máy chủ được triển khai bằng cách sử dụng khung Flask và vì vậy chúng ta có thể sử dụng đối tượng Flask Request để truy xuất dữ liệu nhận được trong yêu cầu POST. Dựa trên dữ liệu (Các con số trong trường hợp này), chúng tôi quyết định người dùng đã chọn tùy chọn nào và đưa ra thông tin thích hợp
Dữ liệu COVID và Phim và Chương trình truyền hình:
Dữ liệu COVID 19, Phim và Chương trình truyền hình được truy xuất từ một API. Tôi sử dụng thư viện python yêu cầu để lấy dữ liệu và sau đó chuyển đổi nó thành định dạng JSON. Sau đó, tôi chỉ phân tích thông tin có liên quan. Đối với Phim và Chương trình truyền hình, tôi cũng đã sử dụng thư viện python ngẫu nhiên để chọn một chương trình truyền hình và Phim ngẫu nhiên
Chi tiết sách
Thuật toán gợi ý sách được sử dụng trong dự án chỉ là một trình duyệt web. Tôi không thể tìm thấy bất kỳ API nào cung cấp cho bạn một cuốn sách ngẫu nhiên với thông tin chi tiết, vì vậy tôi chỉ cần duyệt trang web bằng BeautifulSoup4 và sử dụng trình phân tích cú pháp lxml, tôi trích xuất thông tin liên quan của cuốn sách
Chi tiết Menu phụ:
Việc triển khai các menu phụ phức tạp hơn một chút so với phần còn lại vì tin nhắn Whatsapp giống như SMS, là một giao thức không trạng thái. Để giải quyết vấn đề này, tôi đã sử dụng hai kỹ thuật:
- Sử dụng Biến toàn cục để ghi nhớ trạng thái của thông báo - Điều này chỉ được triển khai cho tùy chọn phụ COVID 19. Trong trường hợp này khi người dùng chọn "Trạng thái của tùy chọn COVID 19 ở quốc gia của tôi", một biến toàn cục có tên không đầy đủ_message được đặt thành Đúng để cho biết sau đó một biến khác được phân loại dựa trên tùy chọn trước đó vẫn là cần thiết. Sau đó, có một kiểm tra ở phần đầu để kiểm tra xem thông báo có được đánh dấu là chưa hoàn thành hay không nếu vậy nó giả định thông báo đó là tên quốc gia cho dữ liệu COVID và chuyển thông tin đến đúng hàm và đặt thông báo không đầy đủ biến toàn cục thành Sai.
- Sử dụng Twilio Cookies và Flask Sessions - Cookie và Flask Sessions được sử dụng trong menu phụ "Đề xuất hoạt động cách ly" để triển khai trạng thái, giống như bất kỳ ứng dụng web nào trên internet sử dụng nó ngày nay, nhưng thay vì ghi nhớ những thứ như tên người dùng của bạn hoặc tài khoản nó ghi nhớ sự chuyển đổi giữa Hai số. Nếu bạn muốn biết thêm thông tin về phần này, tôi khuyên bạn nên đọc hướng dẫn tuyệt vời này về Twilio Cookies do Nhóm Twilio viết
Cải tiến trong tương lai:
- Sử dụng Hướng đối tượng của Python và Mẫu thiết kế để cải thiện kiến trúc mã và độ KHÔ
- Xóa các biến toàn cục
- Xử lý lỗi có thể được cải thiện
- Tự động cập nhật địa chỉ ngrok bằng cách sử dụng ngô và Twilio CLI
- Tài liệu mã
Bước 7: Ghi chú cuối cùng
Tôi hy vọng tất cả các bạn thích dự án này. Đây là hướng dẫn đầu tiên của tôi, vì vậy nếu có điều gì không rõ ràng hoặc cần giải thích thêm, hãy cho tôi biết trong phần bình luận, và tôi có thể giúp bạn. Ngoài ra, nếu bạn thực hiện dự án này với một kỹ thuật hoặc danh sách tính năng khác, tất cả hãy chia sẻ nó
Đề xuất:
Nguyên mẫu HUD dành cho xe máy thông minh (Điều hướng từng chặng và nhiều hơn thế nữa): 9 bước
Nguyên mẫu HUD dành cho xe máy thông minh (Điều hướng từng chặng và nhiều hơn thế nữa): Xin chào! Tài liệu hướng dẫn này là câu chuyện về cách tôi thiết kế và xây dựng nền tảng HUD (Màn hình hiển thị cảnh báo) được thiết kế để gắn trên mũ bảo hiểm xe máy. Nó được viết trong bối cảnh cuộc thi " bản đồ ". Đáng buồn thay, tôi đã không thể hoàn thành
Nhà kính tuyệt vời với hệ thống tưới nước tự động, kết nối Internet và nhiều hơn thế nữa: 7 bước (có hình ảnh)
Nhà kính tuyệt vời với hệ thống tưới nước tự động, kết nối Internet và nhiều hơn thế nữa: Chào mừng bạn đến với Tài liệu hướng dẫn này. Khi bắt đầu cuộc hành quân, tôi đang ở trong một cửa hàng làm vườn và nhìn thấy một số nhà kính. Và vì tôi đã muốn thực hiện một dự án về thực vật và điện tử từ lâu rồi, nên tôi đã mua một dự án: https://www.instagram.com/p
Tạo trò chơi trên Notepad và nhiều hơn thế nữa: 10 bước
Làm một trò chơi trong Notepad và nhiều hơn nữa: Đây là hướng dẫn đầu tiên của tôi. Vì vậy, nếu bạn có bất kỳ đề xuất xin vui lòng bình luận. Hãy bắt đầu! Khi tất cả chúng ta nghe thấy từ notepad, chúng ta nghĩ đến một số ứng dụng vô dụng nhàm chán để ghi chú lại
Máy bắn đá tự động để ném thức ăn cho vật nuôi (chó, mèo, gà, v.v.), ném bóng và hơn thế nữa !: 4 bước (có hình ảnh)
Máy bắn đá tự động để ném thức ăn cho vật nuôi (chó, mèo, gà, v.v.), ném bóng và hơn thế nữa !: Xin chào và chào mừng bạn đến với Tài liệu hướng dẫn đầu tiên của tôi! Con chó của chúng tôi YÊU thức ăn của mình, theo đúng nghĩa đen thì cô ấy sẽ ăn hết chúng trong vòng vài giây. Tôi đã nghĩ ra nhiều cách để làm chậm điều này, từ những quả bóng có thức ăn bên trong đến ném nó ra khắp sân sau. Thật ngạc nhiên, cô ấy
Làm thế nào để tải nhạc từ trang web ALMOST BẤT KỲ (Haha) (Miễn là bạn có thể nghe được thì bạn có thể nhận được nó Được thôi nếu nó được nhúng vào Flash mà bạn có thể không có khả năng) EDITED !!!!! Thông tin thêm: 4 bước
Làm thế nào để tải nhạc từ trang web ALMOST BẤT KỲ (Haha) (Miễn là bạn có thể nghe nó thì bạn có thể nhận được nó … Được thôi nếu nó được nhúng vào Flash mà bạn có thể không có khả năng) EDITED !!!!! Thông tin bổ sung: nếu bạn đã từng truy cập vào một trang web và nó phát một bài hát mà bạn thích và muốn nó thì đây là hướng dẫn cho bạn, không phải lỗi của tôi nếu bạn làm hỏng thứ gì đó (chỉ có cách là nếu bạn bắt đầu xóa nội dung mà không có lý do ) tôi đã có thể tải nhạc cho