Cách xây dựng bot Meetup Slack với Thư viện chuẩn và Node.js

Trong hướng dẫn này, bạn sẽ tìm hiểu cách thiết lập ứng dụng Slack sẽ hiển thị thông tin từ Meetup, API, phục vụ dữ liệu được lưu trữ từ Meetup sang phần mềm ứng dụng khác.

Meetup là một trang web phổ biến nơi các cá nhân có cùng sở thích lập nhóm để tổ chức các sự kiện ở thành phố địa phương của họ.

Khi chúng tôi đã yêu cầu thành công API Meetup, chúng tôi sẽ nhận được phản hồi từ Meetup, chúng tôi sẽ lấy dữ liệu cụ thể từ tải trọng JSON và hiển thị dữ liệu đó trong Slack. Chúng tôi sẽ thiết kế tệp đính kèm ứng dụng Slack của chúng tôi để nó hiển thị tên sự kiện, mô tả, ngày và thời gian, địa điểm, v.v.

Làm thế nào nó hoạt động:

Khi bạn gửi / nextmeetup 94709 & javascript (hoặc bất kỳ mã zip nào và chủ đề quan tâm) trong hộp thông báo Slack, một webhook sẽ được kích hoạt. Webhook, được xây dựng và lưu trữ trên Thư viện tiêu chuẩn, trước tiên sẽ đưa ra yêu cầu đối với API Meetup, API sẽ trả về một tải trọng JSON với kết quả từ truy vấn.

Sau đó, webhook sẽ tạo các thông điệp Slack cho mỗi sự kiện và đăng chúng lên một kênh được chỉ định.

Không cần phải quá tải! Hãy để một bước tại một thời điểm.

Những gì bạn cần:

Tài khoản Slack 1x

Tài khoản Meetup 1x

Tài khoản thư viện chuẩn 1x

Bước 1: Thiết lập ứng dụng Slack của bạn

Hãy chắc chắn rằng bạn đã đăng nhập vào Slack và truy cập Bảng điều khiển ứng dụng Slack của bạn tại https://api.slack.com/apps. Bạn sẽ thấy một màn hình giống như sau.

Nhấp vào Tạo ứng dụng mới. Bạn sẽ được cung cấp một phương thức để nhập Tên ứng dụng của bạn và Vùng làm việc Slack phát triển mà bạn muốn thêm nó vào.

Từ đây, nhấp vào Tạo ứng dụng, bạn sẽ thấy mình trên trang Thông tin cơ bản.

Cuộn xuống để hiển thị thông tin. Đây là nơi bạn có thể đặt cho ứng dụng Slack của mình một tên, mô tả và hình ảnh nếu bạn thích.

Giữ trang Thông tin cơ bản mở trong trình duyệt của bạn. Chúng tôi sẽ sử dụng nó trong một giây để lấy thông tin về ứng dụng Slack của bạn để kết nối ứng dụng này với logic phụ trợ được lưu trữ trên Thư viện chuẩn - mã chạy ứng dụng của bạn.

Bước 2: Tạo một tài khoản thư viện tiêu chuẩn miễn phí

Chúng tôi sẽ lưu trữ ứng dụng Slack của chúng tôi Mã trên Thư viện tiêu chuẩn, mã sẽ yêu cầu và nhận thông tin cụ thể từ API Meetups. Vì vậy, hãy truy cập vào Mã trên Thư viện Chuẩn và yêu cầu tài khoản miễn phí của bạn.

Bước 3: Sao chép và sửa đổi Mẫu mã ứng dụng Slack trên Thư viện chuẩn

Sau khi bạn đăng nhập hoặc đăng ký, bạn sẽ truy cập vào Nguồn API nổi bật. Đây là các mẫu mã ứng dụng có sẵn trên Thư viện chuẩn để mọi người dễ dàng sao chép và sửa đổi ứng dụng. Bạn sẽ chọn mẫu mã ứng dụng Slack và sửa đổi nó để tạo API sẽ cung cấp năng lượng cho ứng dụng Slack của bạn.

Nhập tên duy nhất cho dự án API của bạn và nhấn Okay.

Giải thích ngắn gọn về Mẫu mã nguồn ứng dụng Slack:

Hãy để tạm dừng một lúc để hiểu những gì chúng ta đang xem. Thanh bên trái là một giàn giáo dự án API mà Thư viện tiêu chuẩn đã thiết lập để bạn xây dựng các ứng dụng Slack.

Mẫu mã cho Slack Apps có bốn thư mục. Chúng tôi sẽ chỉ làm việc trong thư mục chức năng được trang bị thêm ba thư mục

hành động /, lệnh / và sự kiện / cũng như một tệp duy nhất __main __. js. Các hướng dẫn cho các hành động Slack, các lệnh gạch chéo và các sự kiện cho ứng dụng của bạn nằm trong các thư mục đó.

Khi bạn triển khai API, Thư viện chuẩn sẽ tự động tạo điểm cuối HTTPS (URL) cho mỗi thư mục. Các URL kết quả sẽ cho phép chúng tôi định cấu hình các webhook lắng nghe và phản hồi các hành động Slack, các lệnh gạch chéo và các sự kiện.

Tất cả năm thư mục (bao gồm thư mục hàm được thiết lập với tệp __main __. Js (điểm cuối chính của thư mục). Các điểm cuối này _main __. Js gửi các hàm thích hợp khi chúng nhận được tin nhắn từ Slack. gửi điểm cuối lệnh khi chúng tôi gọi API thông qua Slack Bot của chúng tôi. Bây giờ, hãy quay lại thiết lập bot của chúng tôi!

Bước 4: Thêm lệnh vào API thư viện chuẩn của bạn

Tạo một lệnh bổ sung

các lệnh: Thư mục lệnh là điểm cuối cho tất cả các lệnh gạch chéo Slack. Tạo một lệnh bổ sung bằng cách đặt con trỏ lên thư mục lệnh và nhấp chuột phải. Chọn tệp mới và đặt tên tệp lệnh gạch chéo của bạn nextmeetup.js và nhấp vào Okay.

Đặt tên cho lệnh của bạn

Tại thời điểm này, bạn sẽ thấy một chức năng JavaScript hello world world bên trong (__main __. Js), được tạo tự động.

Thay thế nội dung của nextmeetup.js bằng cách sau:

Giải thích ngắn gọn về Bộ luật:

Khi bạn gửi / nextmeetup qua ứng dụng Slack của mình, bạn đang thực hiện một yêu cầu GET cho Meetup API API.

Mọi yêu cầu đối với API Meetups phải được xác thực bằng khóa API, vì vậy chúng tôi chuyển khóa Meetup từ tệp env.json của chúng tôi vào yêu cầu của chúng tôi. Chúng tôi cũng gửi yêu cầu GET của chúng tôi với hai tham số, zip và chủ đề.

API Meetup trả về một mảng các đối tượng sự kiện gặp gỡ mà chúng ta có thể xem từ Mã trên nhật ký Thư viện Chuẩn bằng cách ghi nhật ký phản hồi của chúng tôi: console.log (respons.data). Tab nhật ký của bạn được đặt bên dưới phần gỡ lỗi.

Respons.data là một mảng các sự kiện phù hợp với truy vấn của bạn và chúng tôi muốn tạo hai tệp đính kèm cho mỗi sự kiện (một cho vị trí và một cho chi tiết). Chúng tôi có một chức năng gọi là formatAttachement mà chúng tôi có thể gọi cho mỗi sự kiện. Các kết quả được đặt trong một mảng gọi là tệp đính kèm được gửi đến Slack.

Khi bạn đã sao chép và dán mã vào tệp nextmeetup.js của mình, hãy lưu các thay đổi và điều hướng đến tệp env.json trên menu thanh bên trái.

Bước 5: Điền vào tệp env.json của bạn bằng Khóa và thông tin xác thực ứng dụng

Trong env.json, bạn sẽ thấy các biến môi trường cho API của mình. Bạn có thể đặt các giá trị khác nhau cho các môi trường cục bộ, dev và phát hành (sản xuất). Tệp này sẽ chứa tất cả các khóa truy cập duy nhất của bạn vào tài khoản Thư viện chuẩn, tài khoản Meetup và thông tin ứng dụng Slack.

Chúng tôi chỉ thực hiện sửa đổi các biến môi trường "dev" - đảm bảo rằng bạn đang sửa đổi tập hợp đúng! Lưu ý rằng các giá trị "dev dev dành cho môi trường phát triển của bạn và các giá trị" phát hành "chỉ nên được tạo ra khi bạn sẵn sàng phát hành ứng dụng của mình. điền vào khi làm việc với các công cụ dòng lệnh.

Hãy bắt đầu bằng cách điền vào biến STDLIB_TOKEN. Đặt con trỏ vào giữa các dấu ngoặc kép (xem màn hình) và nhấp chuột phải và chọn Chèn Thư viện mã thông báo hoặc sử dụng phím tắt ⌘ + K.

Chọn mã thông báo thư viện của bạn

Chọn Mã thông báo Thư viện để điền vào môi trường "dev".

Bây giờ hãy quay lại trang Thông tin cơ bản của Ứng dụng Slack của bạn và cuộn xuống Thông tin ứng dụng:

Sao chép ID khách hàng, Bí mật khách hàng và Mã thông báo xác minh. Dán chúng vào các trường tương ứng của chúng trong phần dev dev của tập tin env.json.

Thêm tên bạn đã đặt cho ứng dụng Slack của mình choSLACK_APP_NAME.

Ví dụ: SLACK_APP_NAME: Meetup-bot

Giá trị của SLACK_REDIRECT tại điểm cao nhất sẽ là điểm cuối https được tạo bởi Thư viện chuẩn khi bạn triển khai API của mình. Mặc dù chúng tôi chưa có triển khai, nhưng hãy tiếp tục sử dụng cấu trúc này. https: // .api.stdlib.com / @ dev / auth / - với tên người dùng thư viện tiêu chuẩn và tên API của bạn. Khi chúng tôi triển khai mã, bạn có thể quay lại để xác nhận rằng bạn đã điền đúng giá trị này.

SLACK_REDIRECT của tôi trông như thế này: https://Janethl.api.stdlib.com/[email protected]/auth/ - đảm bảo bạn thêm đường dẫn xác thực bằng dấu gạch chéo ở cuối.

Các khả năng và quyền của ứng dụng Slack của bạn sẽ được thiết lập với các phạm vi sau:

Ngay lập tức SLACK_OAUTH_SCOPE

Biến cuối cùng mà bạn sẽ cần thêm là khóa API Meetup của bạn. Meetup yêu cầu mọi yêu cầu được xác thực bằng khóa API.

Bước 6: Truy xuất khóa API Meetup của bạn

Đăng nhập hoặc tạo một tài khoản tại Meetup.com. Truy cập https://secure.meetup.com/meetup_api/key/ để lấy khóa API duy nhất của bạn. Nhấp vào khóa để tiết lộ khóa API của bạn và sao chép nó.

Quay trở lại env.jsonfile của bạn trên Code trên Thư viện chuẩn. Thêm khóa Meetup của bạn làm giá trị "khóa", chính xác như tôi đã làm trong hình ảnh:

Đảm bảo lưu các thay đổi với ‘⌘ + s (hoặc nhấn Lưu ở dưới cùng bên phải).

Trên menu thanh bên, hãy viết tệp __main __. Js nằm bên dưới thư mục sự kiện. Triển khai mã của ứng dụng Slack của bạn vào Thư viện tiêu chuẩn bằng cách nhấp vào Chạy Run.

  • Ngay sau khi triển khai mã của bạn, Thư viện tiêu chuẩn sẽ tạo URL điểm cuối API HTTPS nơi mã của bạn tồn tại. Địa chỉ này bao gồm .api.stdlib.com theo sau là tên bạn đã đặt API @ môi trường: https://janethl.api.stdlib.com/[email protected]/

Bây giờ chúng tôi có URL sẽ cho phép chúng tôi gửi và nhận tin nhắn từ ứng dụng Slack của chúng tôi tới API Meetup. Bây giờ chúng tôi cần đặt URL của chúng tôi dưới dạng webhook trong Slack, vì vậy, hãy để lại quay trở lại bảng điều khiển ứng dụng Slack

Bước 7: Tạo một lệnh Slash mới và thiết lập một Webhook

Bây giờ chúng ta cần thiết lập ứng dụng Slack của mình để đáp ứng với lệnh gạch chéo (/). Đối với điều này, chúng tôi cần thiết lập một webhook trên trang API Slacks.

Webhook là gì?

Có lẽ chúng ta có thể hiểu webhook là gì bằng cách so sánh nó với API. API dựa trên yêu cầu - có nghĩa là chúng hoạt động khi yêu cầu được thực hiện từ ứng dụng của bên thứ ba. Một webhook dựa trên sự kiện - mã sẽ chạy khi một sự kiện cụ thể kích hoạt nó.

Để đặt webhook, nhà cung cấp dịch vụ phải cho phép người tiêu dùng đăng ký URL nơi nhà cung cấp có thể gửi thông tin khi có sự kiện xảy ra. Trong ví dụ này, Slack cho phép chúng tôi đăng ký địa chỉ URL của mình và sau khi đăng ký lệnh gạch chéo có thể kích hoạt webhook của chúng tôi, mã này sẽ thực thi mã trong URL của chúng tôi.

Bây giờ chúng ta đã hiểu điều này, hãy để trên đầu trang của Slack API API để thiết lập webhook của chúng tôi. Tìm và chọn Lệnh Slash trên menu thanh bên.

Sau khi nhấp vào Tạo lệnh mới, bạn sẽ được yêu cầu nhập chi tiết lệnh của mình, ví dụ này sử dụng:

Lệnh: / nextmeetup

RequestURL: https: // .api.stdlib.com / @ dev / Command /: bg

Mô tả ngắn: truy xuất các sự kiện Meetup

Gợi ý sử dụng: [ & ]

Nhấn vào Save Save một khi hoàn thành.

Bước 8: Kích hoạt OAuth & Quyền

Quay trở lại Ứng dụng Slack của bạn, Trên menu thanh bên, nhấp vào OAuth & Quyền.

Khi đó, bạn sẽ muốn nhập URL chuyển hướng như sau: https: // .api.stdlib.com / @ dev / auth /

nhấp vào Thêm Thêm và lưu vào URLS.

URL chuyển hướng này phải khớp với URL mà chúng tôi đã đặt trên tệp env.json trên Mã trên Thư viện chuẩn.

Bước 9: Thêm Bot vào ứng dụng Slack của bạn

Quay trở lại trang Ứng dụng Slack của bạn và nhấp vào Người dùng Bot trên thanh bên trái. Nhấp vào Thêm người dùng Bot. Giữ các thiết lập mặc định.

Thêm người dùng Bot

Bước cuối cùng là ủy quyền cho ứng dụng. Trong trình duyệt của bạn, nhập: https: // .api.stdlib.com / @ dev /

Nhấp vào nút Thêm vào Slack. Bạn sẽ được đưa đến một màn hình ủy quyền khác.

Nhấp vào Ủy quyền. Bạn sẽ thấy một thông điệp thành công!

Bước 10: Kiểm tra ứng dụng Meetack Slack của bạn

Bạn đã làm tất cả. Hãy thử nó! Ứng dụng Slack của bạn hiện có sẵn để sử dụng trong không gian làm việc Slack mà bạn cho phép. Ứng dụng Slack của bạn sẽ phản hồi với / nextmeetup <94709> & như tôi hiển thị trong ảnh chụp màn hình ở trên.

Đó là nó & Cảm ơn bạn!

Tôi hy vọng bạn tìm thấy hướng dẫn này hữu ích. Tôi rất thích bạn bình luận ở đây, gửi email cho tôi tại Janeth [at] stdlib [dot] com hoặc theo dõi Thư viện tiêu chuẩn trên Twitter, @StdLibHQ.

Janeth Ledezma là một người ủng hộ nhà phát triển cho Thư viện tiêu chuẩn và gấu tốt nghiệp! Khi cô ấy không học tiếng Ả Rập, hoặc làm việc, bạn có thể tìm thấy cô ấy khám phá NorCal trên chiếc CBR500R của mình. Theo dõi hành trình của cô ấy với Thư viện tiêu chuẩn thông qua Twitter @mss_ledezma.