Lookerbot mengintegrasikan Slack dan Looker untuk meletakkan semua data Anda di ujung jari Anda.
Dengan Lookerbot, semua orang di perusahaan Anda dapat dengan mudah berbagi data dan menjawab pertanyaan secara instan. Lookerbot dapat menjawab pertanyaan, mengirimkan peringatan, dan banyak lagi!
Untuk uji coba gratis Looker, kunjungi looker.com/free-trial.
Informasi mendetail tentang cara berinteraksi dengan Lookerbot dapat ditemukan di Pusat Bantuan Looker.
s3:PutObjectAcl
dan s3:PutObject
.channels:read
chat:write:bot
files:write:user
team:read
users:read
commands
(jika Anda berencana mengonfigurasi perintah garis miring)xoxb-
.Secara default, Aplikasi Slack bersifat internal di tim Anda. Jangan "mendistribusikan" Aplikasi Slack Anda – ini akan membuatnya tersedia untuk semua pengguna Slack di dunia.
Penting
Harap dicatat: beberapa Variabel Lingkungan di bawah ini telah berubah. Anda mungkin perlu menyesuaikannya agar tetap berfungsi.
Cara tercepat untuk menyebarkan bot adalah dengan menggunakan tombol penerapan sekali klik Heroku, yang akan menyediakan server untuk bot Anda. Ini akan meminta Anda memberi nama unik pada aplikasi, menambahkan kunci API Slack, dan mengonfigurasi semua variabel yang diperlukan (lihat "Variabel Lingkungan" di bawah).
Setelah variabel lingkungan ditetapkan dan server telah diterapkan, bot akan siap digunakan! Anda juga dapat mengonfigurasi perintah garis miring secara opsional.
Pemecahan masalah
Lihat masalah ketergantungan pada heroku? Terapkan
YARN_PRODUCTION=false
sebagai env. ke penerapan. Lihat lompatan-pemangkasan heroku untuk lebih jelasnya.
Bot adalah aplikasi Node.js sederhana. Aplikasi harus mampu menjangkau API instance Looker dan API Slack Anda. Jika Anda memiliki instance Looker yang dihosting sendiri, pastikan untuk membuka port 19999 (atau core_port
Anda) untuk mengakses API Looker.
Bot dikonfigurasi sepenuhnya melalui variabel lingkungan. Anda ingin menyiapkan variabel berikut:
SLACK_API_KEY
(wajib) – Di sinilah Anda akan meletakkan "Token Akses OAuth Pengguna Bot". Anda bisa masuk ke aplikasi Slack di bawah "Instal Aplikasi".
LOOKER_URL
(wajib) – Url web instance Looker Anda.
LOOKER_API_BASE_URL
(wajib) – Titik akhir API dari instance Looker Anda. Dalam kebanyakan kasus, ini akan menjadi url web yang diikuti oleh :19999/api/4.0
(ganti 19999
dengan core_port
Anda jika berbeda).
LOOKER_API_CLIENT_ID
(wajib) – ID klien API untuk pengguna yang Anda inginkan untuk menjalankan bot. Hal ini memerlukan pembuatan pengguna API atau kunci API untuk pengguna yang sudah ada di Looker.
LOOKER_API_CLIENT_SECRET
(wajib) – Rahasia klien API untuk pengguna yang Anda inginkan agar bot dijalankan. Hal ini memerlukan pembuatan pengguna API atau kunci API untuk pengguna yang sudah ada di Looker.
LOOKER_CUSTOM_COMMAND_FOLDER_ID
(opsional) – ID Folder yang Anda ingin bot gunakan untuk menentukan perintah khusus. Baca tentang penggunaan perintah khusus di Pusat Bantuan Looker.
LOOKER_WEBHOOK_TOKEN
(opsional) – Token validasi webhook ditemukan di panel admin Looker. Ini hanya diperlukan jika Anda menggunakan bot untuk mengirim webhook terjadwal.
SLACK_SLASH_COMMAND_TOKEN
(opsional) – Jika Anda ingin menggunakan perintah garis miring atau pesan interaktif dengan Lookerbot, berikan token verifikasi dari bagian "Informasi Dasar" pada pengaturan aplikasi. Beginilah cara bot memverifikasi integritas perintah garis miring yang masuk.
PORT
(opsional) – Port tempat server web bot akan dijalankan untuk menerima perintah garis miring. Defaultnya adalah 3333
.
Jika Anda ingin menempatkan variabel konfigurasi ini pada sistem file, Anda juga dapat menempatkannya dalam file .env
di root proyek. Variabel lingkungan akan diutamakan daripada pengaturan .env
jika keduanya ada.
Ada beberapa variabel lingkungan yang dapat digunakan untuk mengubah perilaku:
LOOKER_SLACKBOT_LOADING_MESSAGES
– Setel ini ke false
untuk menonaktifkan postingan memuat pesan.
LOOKERBOT_DATA_ACTIONS_IN_MESSAGES
– Setel ini ke false
untuk menonaktifkan pembuatan tombol tindakan data untuk pengguna Slack.
SLACKBOT_S3_BUCKET
(opsional) – Jika Anda ingin menggunakan Lookerbot untuk memposting gambar visualisasi, berikan nama bucket Amazon S3.
SLACKBOT_S3_BUCKET_REGION
(opsional) – Jika Anda ingin menggunakan Lookerbot untuk memposting gambar visualisasi, berikan wilayah bucket Amazon S3. Defaultnya adalah us-east-1
.
AWS_ACCESS_KEY_ID
(opsional) – Jika Anda ingin menggunakan Lookerbot untuk memposting gambar visualisasi, berikan access key Amazon S3 yang dapat menulis ke bucket yang disediakan.
AWS_SECRET_ACCESS_KEY
(opsional) – Jika Anda ingin menggunakan Lookerbot untuk memposting gambar visualisasi, berikan kunci akses rahasia Amazon S3 yang dapat menulis ke bucket yang disediakan.
AZURE_STORAGE_ACCOUNT
(opsional) - Jika Anda ingin menggunakan Microsoft Azure Storage untuk menyimpan gambar visualisasi yang diposting oleh Lookerbot, berikan nama akun Azure Storage Anda.
SLACKBOT_AZURE_CONTAINER
(opsional) - Jika Anda ingin menggunakan Microsoft Azure Storage untuk menyimpan gambar visualisasi yang diposting oleh Lookerbot, berikan nama kontainer dalam akun Azure Storage yang ingin Anda gunakan.
AZURE_STORAGE_ACCESS_KEY
(opsional) - Jika menggunakan Microsoft Azure Storage untuk menyimpan gambar visualisasi yang diposting oleh Lookerbot, berikan kunci akses yang dapat menulis ke akun dan kontainer Azure Storage yang disediakan.
GOOGLE_CLOUD_BUCKET
(opsional) - Jika Anda ingin menggunakan Google Cloud untuk menyimpan gambar visualisasi yang diposting oleh Lookerbot, berikan nama keranjang Anda.Jika Lookerbot berjalan di Google Compute Engine, informasi lebih lanjut tidak diperlukan jika cakupan API yang sesuai telah disiapkan.
Jika tidak, Anda dapat memberikan kredensial secara langsung:
GOOGLE_CLOUD_PROJECT
(opsional) - Jika Anda ingin menggunakan Google Cloud untuk menyimpan gambar visualisasi yang diposting oleh Lookerbot, berikan nama proyek Anda.
GOOGLE_CLOUD_CREDENTIALS_JSON
(opsional) - Jika menggunakan Google Cloud untuk menyimpan gambar visualisasi yang diposting oleh Lookerbot, berikan konten file JSON kredensial yang Anda dapatkan dari situs web Google Cloud.
Jika instans Looker Anda menggunakan sertifikat yang ditandatangani sendiri, Lookerbot akan menolak untuk menyambungkannya secara default.
Menyetel variabel lingkungan NODE_TLS_REJECT_UNAUTHORIZED
ke 0
akan memerintahkan Lookerbot untuk menerima koneksi dengan sertifikat yang tidak valid. Harap pastikan Anda telah mengevaluasi secara menyeluruh implikasi keamanan dari tindakan ini pada infrastruktur Anda sebelum menetapkan variabel ini.
Hal ini hanya akan berdampak pada penerapan Looker di lokasi. Jangan atur variabel lingkungan ini jika Looker menghosting instance Anda.
Jika Anda ingin bot terhubung ke beberapa instance Looker, Anda dapat mengonfigurasi bot dengan variabel lingkungan LOOKERS
. Variabel ini harus berupa array JSON dari objek JSON, masing-masing mewakili instance Looker dan informasi autentikasinya.
Objek JSON harus memiliki kunci berikut:
url
harus berupa url web instanceapiBaseUrl
harus menjadi titik akhir APIclientID
harus berupa ID klien API untuk pengguna yang Anda inginkan untuk menjalankan botclientSecret
harus menjadi rahasia untuk kunci API tersebutcustomCommandFolderId
adalah parameter opsional, mewakili Folder yang Anda ingin bot gunakan untuk menentukan perintah khusus.webhookToken
adalah parameter opsional. Ini adalah token validasi webhook yang ditemukan di panel admin Looker. Ini hanya diperlukan jika Anda menggunakan bot untuk mengirim webhook terjadwal.Berikut ini contoh JSON yang terhubung ke dua instance Looker:
[{ "url" : " https://me.looker.com " , "apiBaseUrl" : " https://me.looker.com:19999/api/4.0 " , "clientId" : " abcdefghjkl " , "clientSecret" : " abcdefghjkl " },{ "url" : " https://me-staging.looker.com " , "apiBaseUrl" : " https://me-staging.looker.com:19999/api/4.0 " , "clientId" : " abcdefghjkl " , "clientSecret" : " abcdefghjkl " }]
Variabel LOOKER_URL
, LOOKER_API_BASE_URL
, LOOKER_API_CLIENT_ID
, LOOKER_API_CLIENT_SECRET
, LOOKER_WEBHOOK_TOKEN
, dan LOOKER_CUSTOM_COMMAND_FOLDER_ID
diabaikan ketika LOOKERS
disetel.
Untuk menjalankan server:
yarn install
untuk menginstal dependensiyarn start
untuk memulai server bot. Server akan berjalan sampai Anda mengetik Ctrl+C
untuk menghentikannya. Procfile
yang disertakan juga memungkinkan Anda menjalankan aplikasi menggunakan mandor atau mandor simpul. Pustaka ini juga menyediakan cara mudah membuat skrip untuk digunakan dengan upstart
, supervisord
, dan systemd
.
Perintah garis miring tidak diperlukan untuk berinteraksi dengan bot. Anda bisa langsung DM botnya atau mention botnya seperti:
@pencari bantuan
dan menggunakan semua fungsi.
Namun, perintah Slash sedikit lebih mudah digunakan dan memungkinkan Slack untuk menyelesaikan secara otomatis sehingga Anda mungkin ingin mengaturnya.
/slack/receive
, jadi jika server Anda berada di https://example.com
, URL-nya adalah https://example.com/slack/receive
.SLACK_SLASH_COMMAND_TOKEN
.Anda dapat menggunakan bot untuk mengirim Tampilan terjadwal ke Slack.
/slack/post/channel/my-channel-name
/slack/post/group/my-channel-name
/slack/post/dm/myusername
URL ini diawali dengan URL server Anda. (Jika Anda menggunakan penerapan Heroku, ini akan menjadi nama aplikasi unik yang Anda pilih). Jadi, jika server Anda berada di https://example.com
dan Anda ingin memposting ke saluran bernama data-science
, URL-nya adalah https://example.com/slack/post/channel/data-science
.
LOOKER_WEBHOOK_TOKEN
disetel dengan benar ke token verifikasi yang sama dengan yang ditemukan di panel admin Looker.Secara default, tindakan data sederhana akan muncul di Slack untuk visualisasi nilai tunggal. Tindakan data yang memiliki formulir saat ini tidak didukung.
Ini dapat dinonaktifkan berdasarkan per tindakan dengan menggunakan templat Liquid dalam definisi tindakan untuk membatasi akses ke pengguna tertentu. Sebagai alternatif, tombol tindakan dapat dinonaktifkan seluruhnya dengan variabel konfigurasi bot LOOKERBOT_DATA_ACTIONS_IN_MESSAGES
.
Ada konfigurasi tambahan cepat yang diperlukan untuk menggunakan Data Actions dari Slack:
/slack/action
, jadi jika server Anda berada di https://example.com
, URL Permintaannya adalah https://example.com/slack/action
.Server bot juga mengimplementasikan titik akhir untuk memungkinkan Anda mengirim Tindakan Data ke Slack dengan mudah.
Berikut ini contoh beberapa tindakan data yang dapat Anda terapkan di LookML Anda. (Ganti https://example.com
dengan nama host bot Anda.)
Untuk memanfaatkan ini, Anda harus memastikan bahwa variabel lingkungan LOOKER_WEBHOOK_TOKEN
disetel dengan benar ke token verifikasi yang sama yang ditemukan di panel admin Looker, sama seperti data penjadwalan.
dimension : value {
sql : CONCAT (${first_name}, ' ' , ${last_name}) ;;
# Let user choose a Slack channel to send to
action : {
label : " Send to Slack Channel "
url : " https://example.com/data_actions "
form_url : " https://example.com/data_actions/form "
param : {
name : " message "
value : " :signal_strength: I sent a value from Slack: {{rendered_value}} "
}
}
# Send to a particular Slack channel with a preset message
action : {
label : " Ping Channel "
url : " https://example.com/data_actions "
param : {
name : " message "
value : " :signal_strength: I sent a value from Slack: {{rendered_value}} "
}
param : {
name : " channel "
value : " #alerts "
}
}
# Ask the user for a message to send to a particular channel
action : {
label : " Ask a Question "
url : " https://example.com/data_actions "
form_param : {
name : " message "
default : " Something seems wrong... (add details) "
}
param : {
name : " channel "
value : " #alerts "
}
}
}
Kami menyarankan untuk membuat pengguna API Looker khusus untuk Lookerbot, dan menggunakan kredensial API pengguna tersebut. Perlu diingat bahwa setiap orang yang dapat berbicara dengan Lookerbot Anda memiliki izin dari pengguna ini . Jika ada data yang Anda tidak ingin orang lain akses melalui Slack, pastikan pengguna tidak dapat mengaksesnya menggunakan mekanisme izin Looker.
Perlu diingat juga bahwa saat bot Looker menjawab pertanyaan di Slack, data yang dihasilkan akan dipindahkan ke Slack dan kini dihosting di sana . Pastikan untuk mempertimbangkan dengan cermat data apa yang diizinkan untuk keluar dari Looker. Slack menyimpan riwayat pesan obrolan di server mereka dan mengirimkan berbagai jenis pemberitahuan tentang pesan keluar melalui layanan lain.
Untuk memungkinkan visualisasi muncul di Slack, jika dikonfigurasi untuk melakukannya, bot mengunggahnya sebagai gambar ke Amazon S3 dengan URL yang sangat panjang dan dibuat secara acak. Siapa pun yang memiliki URL ini dapat mengakses gambar itu kapan saja, meskipun gambar tersebut sangat sulit ditebak.
Jika Anda memilih untuk menghapus file gambar dari S3, pesan Slack yang mengandalkan gambar tersebut akan kosong.
.env
di dasar repo.yarn install
yarn start
Permintaan Tarik dipersilakan – kami ingin sekali mendapat bantuan untuk memperluas fungsi bot.
Jika Anda mempunyai masalah dengan bot, silakan buka masalah agar kami dapat membantu Anda!