Traffine I/O

Bahasa Indonesia

2022-06-10

Slack API

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:

  1. Membuat aplikasi di situs web Slack API.
  2. Mengonfigurasi pengaturan OAuth aplikasi Anda, termasuk URL pengalihan, scope, dan opsi instalasi.
  3. Mengimplementasikan alur OAuth 2.0 di aplikasi Anda, memungkinkan pengguna mengotentikasi dan mengotorisasi aplikasi Anda.
  4. 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:

  1. Kunjungi bagian Your Apps di situs web Slack API dan buat aplikasi baru.
  2. Beri nama aplikasi Anda dan pilih workspace tempat aplikasi akan diterapkan.
  3. Di bagian Add features and functionality, klik pada Incoming Webhooks.
  4. Aktifkan Incoming Webhooks dan klik pada Add New Webhook to Workspace.
  5. Pilih saluran di mana Anda ingin memposting pesan dan klik Authorize.
  6. 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:

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 atau icon_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 pada Bots.
  • 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:

  1. Di bagian Event Subscriptions dari aplikasi Anda, aktifkan acara dan berikan URL permintaan untuk server Anda.
  2. Berlangganan acara yang perlu ditangani oleh bot Anda, seperti message.channels, app_mention, atau reaction_added.
  3. 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:

python
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

https://api.slack.com/
https://api.slack.com/messaging/webhooks
https://api.slack.com/bot-users

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!