Apa itu Slack API
Slack API adalah kumpulan alat dan layanan yang dirancang untuk membantu pengembang membuat aplikasi, integrasi, dan otomatisasi khusus di platform Slack. Dengan Slack API, Anda dapat membangun solusi yang disesuaikan yang memperluas fungsionalitas Slack, memungkinkan tim Anda berkomunikasi lebih efektif, mengoptimalkan alur kerja, dan meningkatkan produktivitas.
Slack API menyediakan berbagai komponen yang memungkinkan Anda berinteraksi dengan berbagai aspek platform Slack, termasuk:
- Mengirim dan menerima pesan
- Membuat dan mengelola saluran, grup, dan pesan langsung
- Berinteraksi dengan pengguna, termasuk mengambil informasi pengguna dan status kehadiran
- Membangun pesan dan antarmuka interaktif dengan Kit Blok
- Membuat aplikasi real-time yang didorong oleh acara menggunakan API Acara
- Mengintegrasikan layanan dan data eksternal menggunakan Incoming Webhooks
Jenis API
Slack API dibagi menjadi beberapa komponen, masing-masing disesuaikan dengan tujuan atau fungsionalitas tertentu di ekosistem Slack. Untuk memaksimalkan aplikasi Slack Anda, penting untuk memahami jenis-jenis API ini:
-
Web API
Kumpulan metode berbasis HTTP yang memungkinkan Anda berinteraksi dengan berbagai aspek platform Slack, seperti saluran, pengguna, dan pesan. Web API digunakan terutama untuk meminta dan mengelola data Slack. -
Events API
API didorong oleh acara real-time yang memungkinkan aplikasi Anda menerima dan merespons acara yang terjadi di dalam workspace Slack Anda. API ini berguna untuk membuat aplikasi yang dinamis dan interaktif yang bereaksi terhadap tindakan atau pesan pengguna. -
Conversations API
Sekumpulan metode API yang difokuskan pada pengelolaan dan interaksi dengan saluran, pesan langsung, dan pesan grup. Conversations API dirancang untuk menyediakan cara yang terpadu untuk bekerja dengan berbagai jenis percakapan di Slack. -
Kit Blok
Kerangka UI untuk membangun pesan dan antarmuka aplikasi yang kaya dan interaktif di Slack. Kit Blok memungkinkan Anda membuat pesan yang menarik secara visual dan interaktif yang dapat diperbarui secara dinamis berdasarkan masukan atau acara pengguna.
Token dan Izin
Token diperlukan untuk mengotentikasi dan mengotorisasi aplikasi Slack Anda untuk berinteraksi dengan Slack API. Ada dua jenis token utama:
-
Bot Token
Identifikasi unik untuk bot Anda, memberinya kemampuan untuk melakukan tindakan dan mengakses data atas nama pengguna. Token bot terkait dengan satu set OAuth scope tertentu, yang menentukan izin bot Anda dalam workspace. -
User Token
Identifikasi unik untuk pengguna tertentu di dalam workspace, memungkinkan aplikasi Anda bertindak atas namanya. Token pengguna terikat pada OAuth scope pengguna dan memberikan kemampuan aplikasi Anda untuk melakukan tindakan dan mengakses data yang spesifik untuk pengguna tersebut.
Saat membangun aplikasi Slack Anda, Anda perlu menentukan OAuth scope yang diperlukan untuk berfungsi dengan benar. Scope ini menentukan izin aplikasi Anda dan tindakan yang dapat dilakukan. Penting untuk mengikuti prinsip least privilege, hanya meminta scope yang dibutuhkan aplikasi Anda untuk meminimalkan risiko keamanan potensial.
Untuk memperoleh token dan mengelola izin, Anda perlu mengatur OAuth 2.0 untuk aplikasi Anda. Proses ini melibatkan:
- Membuat aplikasi di situs web Slack API.
- Mengonfigurasi pengaturan OAuth aplikasi Anda, termasuk URL pengalihan, scope, dan opsi instalasi.
- Mengimplementasikan alur OAuth 2.0 di aplikasi Anda, memungkinkan pengguna mengotentikasi dan mengotorisasi aplikasi Anda.
- Menangani penyimpanan dan penyegaran token, memastikan aplikasi Anda mempertahankan akses token yang valid untuk penggunanya.
Incoming Webhooks
Incoming Webhooks adalah cara sederhana dan efisien untuk mengirim pesan dari sumber eksternal ke workspace Slack Anda. Mereka memungkinkan Anda mendorong data, notifikasi, dan pembaruan langsung dari aplikasi atau layanan Anda ke saluran atau pengguna Slack tertentu. Webhook ini sangat berguna untuk mengintegrasikan layanan pihak ketiga, mengotomatisasi alur kerja, dan memberi tahu tim Anda dengan pembaruan real-time.
Menyiapkan Incoming Webhook
Untuk menyiapkan Incoming Webhook, ikuti langkah-langkah ini:
- Kunjungi bagian
Your Apps
di situs web Slack API dan buat aplikasi baru. - Beri nama aplikasi Anda dan pilih workspace tempat aplikasi akan diterapkan.
- Di bagian
Add features and functionality
, klik padaIncoming Webhooks
. - Aktifkan Incoming Webhooks dan klik pada
Add New Webhook to Workspace
. - Pilih saluran di mana Anda ingin memposting pesan dan klik
Authorize
. - Salin URL Webhook yang dihasilkan dan simpan untuk digunakan di masa depan.
Mengirim Pesan dengan Webhook
Dengan URL Webhook di tangan, Anda sekarang dapat mengirim pesan ke saluran Slack yang dipilih menggunakan permintaan POST HTTP sederhana. Anda dapat menggunakan bahasa pemrograman atau alat apa pun yang mampu membuat permintaan HTTP, seperti Python, JavaScript, atau bahkan cURL. Payload pesan harus berupa objek JSON yang berisi bidang text
dengan konten pesan.
Contoh menggunakan Python:
import requests
import json
webhook_url = "YOUR_WEBHOOK_URL"
message = "Hello, World!"
payload = {"text": message}
response = requests.post(webhook_url, data=json.dumps(payload), headers={"Content-Type": "application/json"})
if response.status_code != 200:
raise ValueError(f"Request to Slack returned an error {response.status_code}, the response is:\n{response.text}")
Menyesuaikan Pesan Webhook
Anda dapat menyesuaikan pesan webhook Anda dengan bidang tambahan dalam payload JSON, seperti:
username
Mengubah nama pengirim yang ditampilkan dalam pesan.icon_emoji
atauicon_url
Mengubah ikon pengirim.attachments
Menambahkan konten kaya, seperti gambar, tombol, atau elemen interaktif.blocks
Membuat tata letak pesan interaktif dan canggih menggunakan Block Kit Slack.
Sebagai contoh, untuk mengirim pesan dengan nama pengguna dan ikon kustom:
{
"username": "My Custom Bot",
"icon_emoji": ":robot_face:",
"text": "Hello, World!"
}
Slack Bots
Slack bot adalah aplikasi otomatis yang berinteraksi dengan pengguna dan melakukan tugas dalam platform Slack. Mereka dapat digunakan untuk meningkatkan produktivitas, mengotomatisasi alur kerja, dan menyediakan berbagai layanan atau integrasi. Dengan Slack API, Anda dapat membuat bot kustom yang disesuaikan dengan kebutuhan khusus tim Anda, mampu merespons acara, pesan, dan perintah secara real-time.
Membuat Bot Anda Pertama
Untuk membuat bot Slack, ikuti langkah-langkah ini:
- Kunjungi bagian
Your Apps
di situs web Slack API dan buat aplikasi baru. - Beri nama aplikasi Anda dan pilih workspace tempat aplikasi akan diterapkan.
- Di bagian
Add features and functionality
, klik padaBots
. - Klik
Add a Bot User
untuk menentukan nama tampilan dan username default bot Anda. - Buka bagian
OAuth & Permissions
untuk menambahkan scope yang dibutuhkan untuk bot Anda. - Klik
Install App
dan ikuti langkah-langkah untuk mengotorisasi aplikasi Anda dan memperoleh token bot.
Izin dan Scope Bot
Saat mengonfigurasi bot Anda, Anda perlu menentukan scope OAuth yang diperlukan, yang menentukan izin bot Anda dan tindakan yang dapat dilakukan. Beberapa scope bot yang umum meliputi:
chat:write
Mengirim pesan sebagai bot.channels:read
Mengakses informasi tentang saluran publik di workspace.groups:read
Mengakses informasi tentang saluran pribadi di workspace.users:read
Mengakses informasi tentang pengguna di workspace.
Pastikan hanya meminta scope yang diperlukan untuk bot Anda untuk mengikuti prinsip least privilege dan meminimalkan risiko keamanan potensial.
Menangani Acara dan Perintah
Untuk berinteraksi dengan pengguna dan merespons acara secara real-time, bot Anda perlu mendengarkan dan menangani acara dan perintah tertentu. Ini dapat dicapai menggunakan Slack Events API dan langkah-langkah berikut:
- Di bagian
Event Subscriptions
dari aplikasi Anda, aktifkan acara dan berikan URL permintaan untuk server Anda. - Berlangganan acara yang perlu ditangani oleh bot Anda, seperti
message.channels
,app_mention
, ataureaction_added
. - Implementasikan pendengar acara di server Anda untuk menerima dan memproses acara masuk dari Slack.
Sebagai contoh, pendengar acara Python sederhana menggunakan kerangka web Flask mungkin terlihat seperti ini:
from flask import Flask, request, jsonify
import json
app = Flask(__name__)
@app.route("/slack/events", methods=["POST"])
def handle_event():
payload = json.loads(request.data)
event = payload.get("event", {})
if event.get("type") == "app_mention":
# Handle mention event
pass
elif event.get("type") == "message" and event.get("subtype") != "bot_message":
# Handle message event
pass
return jsonify({"status": "ok"})
if __name__ == "__main__":
app.run()
Referensi