Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

Bagaimana Membuat Antara Muka Slack untuk Aplikasi PHP Anda

by
Difficulty:IntermediateLength:LongLanguages:

Malay (Melayu) translation by Seurion (you can also view the original English article)

Jika anda telah mengikuti perkembangan alat komunikasi pejabat pada tahun lalu atau lebih, saya pasti anda telah mendengar banyak tentang Slack. Di peringkat atas, Slack hanyalah aplikasi sembang lain yang direka untuk perniagaan, tetapi kerana perhatiannya terhadap detail dan kelanjutannya, banyak pengulas telah mengatakan bahawa alat itu akan mengubah secara dramatik bagaimana kami bekerja di masa depan.

Sebagai pemaju, kami berada dalam kedudukan yang baik untuk melompat pada trend dan berfikir tentang cara kami boleh menggunakan Slack sebagai antara muka pengguna berasaskan sembang untuk aplikasi kami.

Itulah sebabnya, dalam tutorial ini, anda akan belajar bagaimana untuk memulakan dengan mengintegrasikan aplikasi PHP anda kepada Slack, dengan membuatnya menyiarkan mesej ke saluran Slack dan membalas arahan slash.

Anda boleh memuat turun kod sumber untuk tutorial dari repositori GitHub yang dipautkan, atau buat sendiri semasa melalui tutorial.

Kod tutorial terdiri daripada dua bahagian:

  • selayak kerangka tetapi lengkap untuk berkomunikasi dengan Slack
  • skrip contoh mudah yang menggunakan kelas Slack untuk menghantar pemberitahuan dan untuk bertindak balas terhadap arahan slash

Mari kita mulakan.

1. Buat Aplikasi Anda dan Sambungkannya ke Slack

Carian Google pantas untuk istilah "Slack PHP" membawa beberapa segelintir Slack interface yang dicipta oleh pemaju lain, jadi anda boleh pergi dengan projek yang sedia ada, dan memasukkannya ke aplikasi anda.

Tetapi API tidak rumit sama sekali, jadi tidak ada sebab untuk tidak bersenang-senang dan mendekati projek dari bawah ke bawah. Dengan cara ini, anda akan tahu apa yang ada dalam API (dan integrasi anda). Ia sentiasa baik untuk mengabadikan perkara sedikit.

Di teras tutorial ini sedang membina antara muka Slack, tetapi untuk menggunakan dan mengujinya, kami juga memerlukan aplikasi. Untuk ini, saya memutuskan untuk menggunakan aplikasi PHP mudah yang tidak menggunakan sebarang kerangka kerja.

Begini bagaimana permohonan contoh akan berfungsi:

  1. Kali pertama anda menjalankan aplikasi, anda akan melihat butang 'Tambah ke Slack' untuk menyambungkan aplikasi ke saluran Slack.
  2. Mengklik pada butang akan membimbing anda melalui pengesahan yang berasaskan OAuth Slack. Apabila aplikasi menerima token akses dari Slack, ia akan menyimpannya ke fail teks supaya ia kemudian boleh menggunakannya untuk bercakap dengan Slack.
  3. Apabila pengesahan berasaskan OAuth selesai, aplikasi itu akan menunjukkan medan teks mudah yang boleh digunakan untuk menghantar pemberitahuan menyeronokkan ('Oh yeah, saya robot!') Ke saluran Slack anda.
  4. Akhirnya, di belakang tabir, aplikasinya akan bertindak balas kepada arahan slash anda atau jenis rakan sepasukan pada saluran Slack yang dipautkan.
This is what our example application will look like

Anda boleh menjalankan aplikasi itu pada pelayan yang didayakan PHP di web, atau ikuti arahan dalam tutorial ini dan jalankan pada mesin pembangunan tempatan anda.

Aplikasi demo adalah untuk tujuan demonstrasi sahaja, jadi pada akhirnya, anda mungkin akan mengambil antara muka Slack dan menyambungkannya ke WordPress sedia ada anda, Laravel, atau projek PHP yang lain. Sepanjang tutorial, saya akan berkongsi beberapa idea tentang bagaimana anda boleh menggunakan kelas antara muka dalam aplikasi sebenar dan bukan aplikasi demo mudah kami.

Langkah 1: Buat Aplikasi PHP Anda

Pertama, mari kita mulakan dengan mewujudkan senibina projek asas dan meletakkan semua fail di tempat.

Sekiranya anda telah memuat turun kod sumber dari GitHub, anda hanya dapat melayari langkah ini dengan cepat untuk memastikan anda memahami bagaimana kod itu dianjurkan dan kemudian beralih ke langkah seterusnya.

Di dalam direktori projek, buat struktur fail berikut:

  1. index.php: Fail untuk aplikasi contoh diterangkan di atas.
  2. slack-interface: Direktori yang akan mengandungi antara muka Slack yang akan kami buat dalam tutorial ini. Direktori ini akan mengandungi tiga fail:
    1. slack-interface / class-slack.php: Kelas antaramuka Slack.
    2. slack-interface / class-slack-access.php: Kelas untuk memegang maklumat akses Slack dan lulus ke aplikasi menggunakan antara muka.
    3. slack-interface / class-slack-api-exception.php: Kelas pengecualian untuk lulus ralat dari antara muka ke kod menggunakannya.

Kemudian, dengan fail yang ada, mari tambahkan beberapa kandungan kepada setiap daripada mereka supaya kami mempunyai rangka kerja untuk membangunkan fungsi sebenar.

Mula dengan menambah borang HTML utama dan beberapa kod pemegang tempat ke index.php:

Mari kita perhatikan kandungan skrip dan apa yang ada di sini pada ketika ini:

  • Pada baris 7-13, kita mula-mula memasukkan fail perpustakaan dan kemudian memberitahu PHP bahawa kita akan menggunakan kelas Slack dan Slack_API_Exception dari ruang nama Slack_Interface. Fail dan kelas tidak wujud lagi, tetapi kami akan sampai kepada mereka tidak lama lagi.
  • Seterusnya, terdapat dua ruang letak untuk fungsi pembantu. Fungsi pembantu pertama, initialize_slack_interface (baris 19-26), akan menetapkan kelas Slack untuk sesi semasa.
  • Fungsi penolong kedua, do_action (baris 28-45) akan digunakan untuk menangani tindakan lain kecuali membuat halaman—misalnya, menyiarkan mesej yang disampaikan ke saluran Slack Anda, tetapi juga menerima perintah slash yang masuk dari Slack.
  • Berikutan fungsi penolong, terdapat fungsi ''utama'' aplikasi kecil kami. Pertama, permohonan itu memulakan objek Slack (baris 52). Kemudian, pada baris 54-59, ia menyemak jika tindakan telah diminta menggunakan parameter tindakan. Jika ya, aplikasi melaksanakan tindakan menggunakan fungsi pembantu do_action kami.
  • Selebihnya skrip adalah HTML asas (dan beberapa CSS, yang saya tulis dalam fail yang sama untuk menjaga perkara yang mudah) yang menjadikan bentuk yang anda lihat dalam imej di atas.

Seterusnya, tambahkan beberapa kandungan dalam fail kelas yang membentuk antara muka Slack kami.

Dalam class-slack.php, tambahkan kod berikut:

Kelas tidak mengandungi sebarang fungsi, kecuali pembina tempat letak dan definisi URL akar untuk API Slack. Pada baris 2, anda juga akan melihat bahawa kelas diletakkan di ruang nama, Slack_Interface.

Begitu juga, dalam kelas-slack-access.php, tambahkan kod berikut:

Akhirnya, tambah kandungan berikut kepada kelas-slack-api-exception.php:

Kini, kami telah mewujudkan rangka kerja untuk aplikasi Slack kami dan bersedia untuk menambah beberapa fungsi.

Tetapi pertama, kita perlu membuat permohonan yang ada di web supaya Slack boleh bercakap dengannya.

Langkah 2: Jadikan Pelayan Anda Ada di Internet

Sebelum anda boleh mendaftarkan permohonan anda dengan Slack dan membuatnya menerima panggilan masuk dari Slack, anda perlu terlebih dahulu membuat ia boleh diakses dari internet.

Perintah Slash juga memerlukan aplikasi menggunakan HTTPS. Jika anda tidak peduli dengan arahan dan hanya mahu aplikasi anda dapat menghantar pemberitahuan, anda boleh melangkau bahagian ini. Untuk tutorial ini, bagaimanapun, sebagai arahan slash yang masuk adalah sebahagian besar daripada apa yang ingin kami lakukan, kami memerlukan penyelesaian yang memberi kami sokongan HTTPS.

Sekiranya pelayan web anda sudah mempunyai HTTPS, itu cara semula jadi.

Pilihan lain, dalam fasa pembangunan, adalah menggunakan perkhidmatan terowong seperti localtunnel. Localtunnel memberikan pelayan anda URL yang selamat di web yang boleh ditujukan kepada pelayan web anda, berjalan di mesin tempatan anda. Walaupun bukan penyelesaian untuk aplikasi langsung, apabila menguji fungsi, kedua-dua memudahkan aliran kerja anda (tidak perlu memuat naik fail ke pelayan) dan memberi anda sokongan HTTPS di luar kotak.

Untuk bermula, pasang pemasangan tempatan mengikut arahan di laman web alat.

Kemudian, mulakan pelayan web anda, mencantumkan pelabuhan pelayan anda mendengarkan.

Dan akhirnya, sebaik sahaja pelayan anda selesai, mulailah setempat di terminal menggunakan arahan berikut. Ganti your_subdomain dengan subdomain pilihan anda dan your_port dengan port pelayan web anda:

Jika subdomain yang anda minta tersedia, localtunnel bermula, dan anda boleh mengakses pelayan anda melalui URL https://your_subdomain.localtunnel.me.

Tunneling started

Langkah 3: Daftar Permohonan Slack Baru

Sebaik sahaja pelayan anda boleh dihubungi dari internet, sudah tiba masanya untuk mendaftarkan permohonan Slack baru.

Untuk membuat aplikasi Slack, log masuk ke akaun Slack anda dan lawati halaman Aplikasi Baru. Anda juga boleh mencari pautan ke halaman ini dengan mengklik pada Apl Saya di sudut kanan atas papan pemuka API Slack anda semasa log masuk.

You will find the Add New Application link on your My Apps page

Halaman Aplikasi Baru kelihatan seperti ini:

The New Application page

Pada halaman ini, masukkan maklumat tentang aplikasi anda dan kemudian klik Buat Aplikasi untuk menyimpannya:

  • Nama Apl: Nama untuk mengenal pasti aplikasi anda dalam senarai aplikasi tetapi juga dalam mana-mana mesej yang anda hantar kembali ke Slack. Saya pergi dengan ''Tutorial Slack''.
  • Pasukan: Pasukan yang mana permohonan itu akan tersedia. Apabila aplikasi anda sudah siap, anda boleh menyerahkannya ke direktori aplikasi. Pada ketika itu, pasukan Slack akan menyemaknya dan, jika semuanya berjalan lancar, membuat permohonan anda tersedia untuk semua orang.
  • Penerangan ringkas: Penerangan yang akan ditunjukkan kepada pengguna apabila mereka menyambung aplikasi anda ke saluran Slack mereka. Jika hanya ujian, anda boleh tinggalkan kosong sekarang. Sama berlaku untuk Pautan untuk arahan pemasangan dan medan maklumat sokongan aplikasi.
  • Ikon: Ikon yang akan ditunjukkan kepada pengguna anda apabila mereka menyambungkan aplikasi anda ke saluran Slack mereka serta dalam setiap mesej yang disiarkan oleh apl anda.
  • Redirect URI (s): URL yang Slack akan mengarahkan pengguna anda apabila mereka telah menyelesaikan aliran pengesahan. Kami akan melihat perkara ini dengan lebih terperinci dalam Langkah 5 dan 6 di bawah, tetapi sekarang, tetapkan medan untuk menunjuk ke index.php? Action = oauth dalam aplikasi anda, sebagai contoh, https://your_subdomain.localtunnel.me/ integrasi slack / index.php? action = oauth.

Apabila definisi aplikasi Slack telah dibuat, anda akan melihatnya disenaraikan di halaman Apl Saya. Di sana, anda boleh mengedit maklumat aplikasi jika diperlukan, dan menyalin kelayakan APInya (disenaraikan dalam seksyen berlabel Maklumat OAuth) ke integrasi anda:

OAuth Information

Langkah 4: Simpan Kredensial API dalam Aplikasi Anda

Seterusnya, kerana anda akan menyimpan Kredensial API untuk aplikasi PHP anda, ada baiknya mengambil sedikit masa untuk berfikir tentang cara melakukannya secepat mungkin.

Secara umum, ia tidak dianggap sebagai amalan yang baik untuk melakukan maklumat sensitif sedemikian kepada kawalan versi. Sebaliknya, anda mungkin mahu menggunakan salah satu daripada pilihan berikut:

  • Menyimpan bukti kelayakan dalam pangkalan data anda boleh menjadi idea yang baik, sebagai contoh, dalam plugin WordPress di mana setiap pengguna akan mempunyai bukti kelayakan API mereka sendiri dan anda mahu mereka dapat menetapkan kelayakan mereka secara langsung dari Dashboard Admin.
  • Pilihan lain (sedikit lebih selamat daripada yang pertama) ialah menentukan kelayakan sebagai pemalar dalam fail konfigurasi secara langsung pada pelayan (sekali lagi, jika bekerja dengan WordPress, wp-config.php akan menjadi pilihan semulajadi). Pastikan fail konfigurasi tidak didedahkan kepada dunia luar (atau komited untuk kawalan versi).
  • Akhirnya, anda boleh menetapkan ID pelanggan dan rahsia sebagai pembolehubah persekitaran di pelayan. Dengan cara ini, maklumat itu tidak disimpan dalam fail yang secara tidak sengaja bocor di luar aplikasi.

Dalam pelaksanaan kami, kami akan menggunakan kombinasi dua kaedah terakhir. Untuk menjadikan antara muka Slack mengetahui kelayakan API, tambahkan dua fungsi baru ke kelas Slack:

Kedua-dua fungsi adalah salinan yang hampir sama antara satu sama lain, jadi mari kita pergi melalui yang pertama, get_client_id, untuk mendapatkan idea tentang apa yang mereka lakukan:

  • Pertama, pada garisan 7-10, fungsi memeriksa untuk mengetahui sama ada ID pelanggan telah disimpan dalam pemalar yang dinamakan SLACK_CLIENT_ID. Jika pemalar ini ditakrifkan, fungsi itu mengembalikan nilainya.
  • Sekiranya pemalar belum ditakrifkan, fungsi ini berterusan dengan memeriksa pembolehubah persekitaran dengan nama yang sama (garisan 12-15).
  • Akhirnya, jika tiada ID pelanggan ditemui, fungsi mengembalikan rentetan kosong.

Untuk menggunakan pendekatan ini, tambahkan kelayakan akses anda pada permulaan index.php, atau lebih baik, fail PHP berasingan yang anda sertakan dalam index.php tetapi tidak pernah berkomitmen untuk mengawal versi:

Langkah 5: Buat Struktur Data untuk Maklumat Kebenaran Penyimpanan

Kini kami telah menyimpan bukti kelayakan aplikasi, sudah tiba masanya untuk beralih ke tahap pengesahan yang seterusnya: membolehkan pengguna menambah aplikasi ke akaun Slack mereka.

Aliran pengesahan terdiri daripada tiga langkah:

  1. Jika pengguna belum menambahkan aplikasi ke Slack, butang ''Tambah ke Slack'' ditunjukkan dalam aplikasi.
  2. Selepas mengklik pada butang, pengguna diminta memberi kebenaran aplikasi untuk menyiarkan pemberitahuan dan membalas arahan pada saluran Slack.
  3. Apabila pengguna membenarkan permohonan itu, permohonan anda menerima kod sementara yang kemudiannya bertukar kepada satu set maklumat pengesahan tetap menggunakan API Slack.

Kami akan mula melaksanakan aliran tidak lama lagi, tetapi pertama, kami memerlukan kaedah untuk menyimpan dan menggunakan maklumat pengesahan sebaik sahaja kami terima dari Slack.

Untuk ini, kami akan menggunakan kelas Slack_Access, yang kami buat awal dalam tutorial ini.

Di bahagian atas kelas, mula-mula menentukan pembolehubah untuk memegang data kebenaran:

Kemudian, laksanakan pembina untuk membaca nilai-nilai untuk pembolehubah ini daripada array yang diluluskan sebagai parameter:

Pembina menginisialisasi pemboleh ubah kepada nilai-nilai yang dilalui dalam array data $, atau untuk mengosongkan nilai jika sekeping maklumat tidak terdapat dalam array atribut.

Selepas pembina, tambahkan fungsi untuk memeriksa sama ada objek telah dimulakan dengan data yang sah:

Kemudian, untuk menyimpan data pengesahan, tambahkan fungsi berikut:

Fungsi ini mengembalikan rentetan yang diformatkan JSON yang mengandungi data kebenaran.

Dalam aplikasi sebenar, anda kemungkinan besar akan mengikat maklumat kebenaran kepada akaun pengguna dan menyimpan data JSON bersama-sama dengan maklumat pengguna. Walau bagaimanapun, dalam contoh permohonan kami—sekali lagi—kami akan menggunakan pendekatan yang mudah: kami akan menganggap bahawa hanya satu pengguna (anda) yang akan menggunakan aplikasi itu, jadi kami hanya perlu menyimpan satu set kelayakan OAuth .

Tetapi pertama, mari pindah ke kelas Slack dan menjadikannya menggunakan fungsi yang kami baru tambah ke Slack_Access.

Laksanakan pembina untuk menyediakan objek capaian untuk contoh Slack semasa:

Selepas pembina, tambah fungsi untuk memeriksa sama ada data kebenaran di objek Slack telah ditetapkan:

Langkah 6: Tunjukkan Tambah pada Butang Slack

Dengan struktur data di tempat, kami boleh mula menggunakan pemeriksaan kebenaran dalam aplikasi utama kami dan menunjukkan butang ''Tambah ke Slack''.

Perhatikan bahawa walaupun kelas Slack_Access itu sendiri boleh digunakan dalam kebanyakan aplikasi, sama ada penyelesaian yang digunakan dalam index.php adalah untuk tujuan demonstrasi sahaja: kerana kami tidak mempunyai pengurusan pengguna atau pangkalan data, kami hanya akan menyimpan JSON- kelayakan akses diformat dari to_json dalam fail teks.

Pada ketika ini, fail itu tidak lagi wujud, yang bermaksud bahawa aplikasi itu belum ditambah ke akaun Slack, dan butang ''Tambah ke Slack'' harus ditunjukkan dan bukannya bidang teks.

Untuk melaksanakan sistem simpanan mudah, mulakan dengan menggantikan index.php fungsi initialize_slack_interface dengan yang berikut:

Pada baris 9-14, fungsi membaca data kebenaran sebagai rentetan dari fail teks yang disebut access.txt jika terdapat fail. Jika fail tidak wujud, rentetan JSON diinisialisasi ke hash kosong.

Kemudian, pada baris 17, data akan diasingkan ke dalam array untuk lulus ke antara muka Slack (pada baris 19).

Sekarang, kami bersedia untuk meletakkannya bersama-sama dan membuat aplikasi kecil kami menunjukkan butang ''Tambah ke Slack'' jika tiada data pengesahan dijumpai.

Pada akhir index.php, gantikan borang dengan coretan kod berikut:

Dalam coretan kod, pada baris 1, anda akan melihat bahawa borang itu kini dikelilingi dengan pemeriksaan is_authenticated supaya pengguna tidak dapat melihatnya sebelum membenarkan permohonan itu.

Kemudian, di cawangan yang lain, pada baris 8-12, kod itu sekarang menjadikan butang 'Tambah ke Slack'.

Mari kita lihat apa yang ada di dalam butang itu se tag:

  • Pertama sekali, butang menunjuk pengguna ke aliran kebenaran OAuth Slack (oauth / authorize).
  • Dengan menggunakan parameter skop, aplikasi boleh menentukan kebenaran yang diperlukan oleh pengguna untuk membolehkan: dalam kes kami, kami memerlukan webhook masuk (webhook masuk) untuk menyiarkan pemberitahuan dan keupayaan untuk menambah arahan slash baru (arahan). Untuk senarai penuh kebenaran yang tersedia, semak dokumentasi API.
  • Akhirnya, pautan itu perlu memasukkan kunci awam aplikasi (client_id), yang kami simpan ke aplikasi kami sebelum ini dalam tutorial.

Selebihnya hanya HTML asas untuk menunjukkan imej butang itu.

Sekarang, apabila anda membuka aplikasi dalam penyemak imbas web anda, inilah yang harus anda lihat:

The Add to Slack button

Langkah 7: Lengkapkan Pengesahan OAuth

Sekarang, butang ''Tambah ke Slack'' ada di tempatnya. Tetapi apa yang berlaku apabila pengguna mengklik padanya?

Pertama, pengguna akan melihat halaman pengesahan apl Slack, yang kelihatan seperti ini:

Give the Slack application access to one your Teams channels

Kemudian, jika semua kelihatan baik kepada pengguna, dia akan mengklik butang Perintah, di mana pelaksanaannya akan kembali kepada permohonan anda.

Anda akan ingat bahawa apabila kami menentukan aplikasi dalam Slack, kami menetapkan URL panggil balik (YOUR_URL / index.php? Action = oauth).

Untuk mengendalikan panggilan balik ini, kami akan menggunakan sistem tindakan yang kami buat sebelum ini dalam tutorial. Dalam aplikasi sebenar anda, anda perlu melaksanakan URL panggilan balik dengan cara yang berfungsi dengan baik untuk platform yang anda gunakan. Sebagai contoh, di WordPress, anda boleh membuat permalink tersuai menggunakan enjin menulis semula.

Bagaimanapun, sementara cara menerima panggilan balik akan berbeza berdasarkan aplikasi, apa yang kami lakukan dengan data yang diterima dari Slack tetap sama.

Gantikan fungsi do_action yang masih kosong dengan yang berikut:

Apabila pengguna kembali dari aliran kebenaran, fungsi ini akan dipanggil dengan $ action set to 'oauth'. Bersama dengan permintaan, permohonan itu menerima tanda satu kali, yang dibaca pada baris 17.

Kemudian, pada baris 21, untuk melengkapkan kebenaran, fungsi itu memanggil fungsi dalam kelas Slack kami, do_oauth.

Seperti yang anda ingat dari sebelumnya, apabila memulakan antara muka Slack, kami cuba memuatkan data pengesahan dari fail teks, access.txt. Apabila fail itu tidak dijumpai, permohonan itu memutuskan bahawa pengguna belum mengesahkan permohonan itu dan menunjukkan butang ''Tambah ke Slack''.

Sekarang, selepas pengesahan OAuth telah berjaya diselesaikan, pada baris 23, fungsi menyimpan data ke fail tersebut.

Tetapi sebelum kita sampai ke sana, untuk menyelesaikan aliran pengesahan, kita masih perlu melaksanakan fungsi do_oauth dalam kelas Slack.

Fungsi ini akan memanggil API Slack untuk menukar kod yang dihantar kepada fungsi panggil balik OAuth dengan data pengesahan yang boleh disimpan secara kekal dan digunakan untuk berkomunikasi dengan Slack sehingga pengguna memberhentikan kebenaran.

Untuk melakukan ini, kami memerlukan satu cara untuk membuat permintaan HTTP ke pelayan Slack. Terdapat banyak cara untuk membuat permintaan HTTP dalam PHP, dan apa yang dibentangkan di sini bukan satu-satunya cara. Sebagai contoh, jika anda membangun untuk WordPress, anda mungkin mahu menggunakan wp_remote_get dan wp_remote_post.

Walau bagaimanapun, kali ini untuk memastikan segala sesuatu bebas dari sebarang rangka kerja pembangunan aplikasi tertentu, saya memutuskan untuk pergi menggunakan perpustakaan percuma dengan sintaks yang indah dan bersih, Permintaan.

Pasang perpustakaan mengikut arahan di laman webnya. Dalam kod sumber dalam repositori Tuts + GitHub, anda akan menemui konfigurasi Komposer yang telah siap untuk memasukkan pustaka ke aplikasi kami.

Sebaik sahaja anda telah memasang Permintaan (atau pilihan perpustakaan HTTP anda), tambahkan fungsi do_oauth ke kelas Slack:

Mari kita melalui talian fungsi mengikut baris:

Pada baris 14-18, fungsi memulakan parameter untuk permintaan HTTP. Perlu diperhatikan bahawa ID pelanggan dan rahsia diluluskan sebagai pilihan permintaan untuk menggunakan mekanisme pengesahan asas HTTP.

Pada baris 21, anda akan melihat bahawa kami menghantar token satu kali yang diterima dalam fungsi panggilan kembali ke API Slack untuk mengenal pasti permintaan tersebut.

Permintaan POST dihantar pada baris 23. Kemudian, fungsi tersebut diteruskan dengan menguraikan tindak balas dan sama ada menubuhkan dan mengembalikan data kebenaran (garisan 33-44) jika semua berjalan lancar, atau melemparkan pengecualian (garisan 28-31) jika ada ralat dengan permintaan itu.

Kini aliran aliran ''Tambah ke Slack'' sudah siap. Apabila anda mencubanya, anda sepatutnya melihat perkara berikut:

The authentication flow was completed successfully

Selain itu, jika anda melihat direktori projek anda, anda perlu mencari fail teks yang disebut access.txt, dengan data pengesahan yang disimpan di dalamnya.

Sekarang, kami bersedia untuk bahagian yang menyeronokkan: membuat siaran permohonan ke saluran Slack anda.

2. Menghantar Pemberitahuan ke Saluran Slack

Menghantar notis ke saluran Slack adalah cara yang ampuh untuk memastikan pasukan berpadanan dengan tarikh acara yang penting kepada mereka. Sebuah kedai web mungkin menghantar pemberitahuan pembelian baru, perisian penjejakan bug secara automatik boleh memberitahu pembangun secara automatik, dan senarai itu terus berjalan.

Dalam contoh kami, seperti yang telah anda lihat di UI sebelum ini, kami akan menghantar pemberitahuan mana-mana pengguna yang mengemukakan menggunakan medan teks.

Tetapi kefungsian untuk menghantar apa-apa jenis pemberitahuan lain adalah sama, jadi apabila ia sudah siap, anda boleh menggunakan kod yang sama untuk menghantar pemberitahuan anda sendiri yang lebih kompleks.

Langkah 1: Buat Fungsi untuk Menghantar Pemberitahuan

Dalam kelas Slack, tambahkan fungsi berikut:

Menyiarkan pemberitahuan kepada saluran Slack dilakukan dengan menggunakan webhook, URL spesifik keizinan yang Slack mendedahkan kepada aplikasi untuk menghantar ke saluran.

Kami tidak memberi perhatian terlebih dahulu pada aliran 'Tambah ke Slack', tetapi jika anda melihat data dalam Slack_Access sekali lagi, anda akan melihat bahawa Slack mengembalikan medan yang disebut incoming_webhook. Bidang ini adalah tatasusunan dengan dua bidang di dalamnya: URL yang harus kita hantar pemberitahuan kami, dan saluran pengguna yang dipilih untuk mesej aplikasi.

Untuk mengakses data tersebut, tambahkan dua fungsi berikut ke kelas Slack_Access:

Sekarang, mari kita kembali ke fungsi send_notification di atas, dan lihat bagaimana fungsi-fungsi ini digunakan untuk menghantar pemberitahuan itu.

Pada baris 19, anda akan melihat bahawa permintaan HTTP dihantar ke URL web masuk yang disimpan dalam data kebenaran.

Dan kemudian, pada baris 24, saluran itu diluluskan dalam parameter permintaan, bersama-sama dengan teks dan mana-mana lampiran yang ingin kami siarkan.

Langkah 2: Gunakan Fungsi Menghantar Pemberitahuan dalam Aplikasi Contoh

Kini kami telah melaksanakan fungsi untuk menghantar pemberitahuan, mari melampirkan fungsi ke antara muka pengguna kami dan mengujinya.

Tambah cawangan kes baru berikut ke fungsi do_action di index.php:

Coretan kod ini membaca mesej dari parameter permintaan (baris 3) dan menggunakan fungsi send_notification yang baru kami buat untuk menyiarkannya kepada Slack (baris 6).

Oleh kerana borang telah dibuat sudah pada permulaan tutorial, anda kini bersedia untuk menghantar mesej pertama anda ke saluran Slack anda. Taip sesuatu dalam medan teks dan tekan Enter untuk menyerahkan borang.

Kemudian, lihat saluran Slack anda untuk melihat mesej anda:

The bot just sent its first message

Langkah 3: Gunakan Lampiran untuk Membuat Pemberitahuan Anda Lebih Informatif

Dalam fungsi send_notifikasi, anda mungkin perasan parameter yang dipanggil lampiran. Saya tidak menyebutnya lagi kerana ia tidak sesuai dengan permohonan contohnya. Walau bagaimanapun, lampiran adalah cara yang ampuh untuk menyampaikan maklumat yang lebih menarik mengenai acara aplikasi anda ke saluran Slack, dan anda mungkin mahu menggunakannya dalam aplikasi anda.

Jadi, mari percubaan sedikit dengan lampiran dengan mengubah suai panggilan send_notification dari Langkah 2 sedikit. Gantikan $ slack-> send_notification () panggilan dengan sekeping kod berikut:

Lampiran yang dinyatakan dalam kod di atas adalah pemberitahuan khayalan tentang penambahan resipi roti baru dalam pangkalan data resipi. Ia hanya sebagai contoh, jadi teruskan dan ubah suai untuk melihat bagaimana perubahan yang anda lakukan untuk itu menjejaskan output pada saluran Slack.

  • sandaran: Mesej teks biasa yang diperlukan yang ditunjukkan jika lampiran tidak dapat dipaparkan.
  • tajuk: Judul untuk lampiran, digayakan menggunakan font yang lebih besar.
  • title_link: URL yang akan dibuka apabila pengguna mengklik pada pautan. Dalam contoh kami, ini akan menunjukkan resipi.
  • teks: Teks yang akan ditunjukkan di dalam lampiran.
  • warna: Warna untuk garis di sebelah kiri lampiran.
  • medan: Senarai medan data untuk dipaparkan di lampiran. Contohnya, mereka digunakan untuk memaparkan beberapa maklumat mengenai resipi.
  • image_url: URL untuk imej yang ditunjukkan dalam lampiran.

Inilah yang anda lihat apabila anda menyiarkan pemberitahuan dengan lampiran yang dinyatakan di atas:

A Slack notification with an attachment

Main dengan parameter dan lihat bagaimana mengubahnya menjejaskan mesej yang disiarkan pada saluran Slack anda: ubah suai atribut, hantar pemberitahuan baru, dan lihat apa yang berubah.

Untuk maklumat lanjut tentang lampiran, lihat dokumentasi Slack.

3. Buat Permohonan Anda Menjawab Perintah Slash

Permohonan anda kini boleh bercakap dengan Slack. Seterusnya, kami akan membuat kerja komunikasi juga dengan cara lain: dengan menambahkan perintah slash, kami boleh membuat kerja Slack sebagai antara muka untuk aplikasi kami.

Dalam aplikasi dunia sebenar, ini mempunyai banyak kes penggunaan. Menandakan pepijat seperti yang ditetapkan, menandakan pesanan sebagai dihantar, atau meminta jenaka adalah hanya beberapa yang teringat.

Mari kita teruskan dan melaksanakan petikan jenaka untuk menyiarkan jenaka setiap kali ada jenis /jenaka pada saluran Slack.

Langkah 1: Tentukan Perintah Slash

Pertama, lawati halaman tetapan Aplikasi Slack anda untuk menentukan arahan slash baru.

Tatal ke bahagian dengan tajuk, Slash Commands, dan klik Buat perintah baru.

Slash Commands

Di skrin seterusnya, masukkan maklumat yang diperlukan untuk menentukan arahan baru, dan klik Simpan.

Create New Command

Berikut adalah penerangan ringkas bidang di halaman ini:

  • Perintah: Perintah slash, termasuk aksara slash. Sebagai contoh, /jenaka.
  • Permintaan URL: URL pada pelayan anda yang harus dipanggil apabila seseorang menaip arahan slash ini pada saluran Slack. Inilah tempat dimana localtunnel berguna: URL perlu HTTPS dan tersedia untuk dihubungkan dari internet. Gunakan format URL berikut untuk membuat URL permintaan serasi dengan fungsi yang akan kami bina di Langkah 2 di bawah: YOUR_SERVER/index.php?action = command.
  • Penerangan ringkas: Penerangan yang ditunjukkan dalam pop timbul autolengkap apabila seseorang menaip arahan.
  • Petunjuk Penggunaan: Jika arahan mengambil parameter, anda boleh menerangkannya di sini. Teks ini juga dapat dilihat dalam dialog autocomplete.

Selepas menyimpan arahan, anda akan mendapati arahan baru anda yang ditunjukkan dalam seksyen Slash Commands. Anda boleh menggunakan butang untuk mengedit atau memadamnya.

Slash Commands now include the joke command

Di bawah senarai arahan, anda akan menemui rentetan berlabel Token Pengesahan.

Anda boleh menggunakan token ini untuk mengesahkan bahawa arahannya memang datang dari Slack sebelum melaksanakannya. Simpan token dalam aplikasi anda dengan cara yang sama seperti yang anda lakukan untuk ID pelanggan dan rahsia di awal tutorialnya, contohnya dengan menambah malar pada awal index.php:

Langkah 2: Buat Sistem untuk Mematuhi Perintah Slash dalam Aplikasi Anda

Sekarang, Slack akan mengenal pasti arahan apabila seseorang menanyainya dalam tetingkap sembang Slack (anda boleh cuba sekarang untuk melihat popup autocomplete).

Apabila pengguna menyerahkan arahan, Slack akan memanggil pelayan kami di URL Permintaan yang dinyatakan dalam langkah sebelumnya. Kini, kami perlu melaksanakan fungsi untuk membuat permohonan kami bertindak balas dengan betul.

Memandangkan anda boleh menambah lebih daripada satu arahan slash ke aplikasi Slack anda, adalah baik untuk menyokong bilangan nombor slash yang berubah-ubah. Itulah sebabnya kami akan mula dengan membuat sistem untuk mengesan arahan slash dalam aplikasi.

Pertama, dalam kelas Slack, tambah pembolehubah berikut untuk memegang perintah:

Dalam pembina kelas, tambahkan satu baris untuk menginisialisasi array:

Kemudian, buat fungsi untuk menambah arahan slash baru ke array:

Sekarang bahawa anda mempunyai senarai perintah slash, tambahkan fungsi untuk melaksanakan arahan:

Mari kita lalui fungsi ini untuk melihat apa yang berlaku:

Pertama, pada baris 8-12, fungsi mengumpul data dari parameter permintaan:

  • token digunakan untuk mengesahkan bahawa permintaan itu adalah permintaan perintah Slack yang sah.
  • arahan mengandungi arahan slash yang sepatutnya dilaksanakan.
  • teks adalah rentetan teks yang telah ditaip selepas arahan. Ia boleh digunakan untuk lulus parameter kepada arahan slash anda.
  • user_name adalah nama pengguna pengguna yang menghantar arahan slash.

Pada baris 15, fungsi ini melakukan pengesahan dengan membandingkan token yang telah diluluskan dalam parameter permintaan kepada yang kami simpan pada langkah sebelumnya.

Sekiranya token itu sah, fungsi terus dijalankan, jika satu dengan nama arahan yang diberikan telah didaftarkan di kelas Slack. Pelaksanaan perintah itu dilakukan pada baris 20, di mana fungsi membuat panggilan ke fungsi panggil balik yang ditentukan untuk arahan.

Kemudian, pada baris 21, maklum balas dikodkan ke dalam rentetan JSON dan dicetak. Perhatikan bahawa fungsi itu berakhir dengan panggilan keluar untuk memastikan tidak ada lagi yang dicetak selepas respon.

Untuk melengkapkan fungsi, tambahkan fungsi get_command_token untuk mendapatkan token pengesahan perintah untuk aplikasi:

Fungsi perintah slash dalam kelas Slack kini selesai, dan semua yang perlu dilakukan sebelum kita boleh melaksanakan arahan pertama kami adalah untuk menyambung URL panggil balik ke kod ini.

Untuk melakukan itu, tambah cawangan kes baru dalam fungsi do_action di index.php:

Langkah 3: Daftar dan Uji Perintah Slash

Sekarang kita telah membuat satu sistem untuk mengendalikan arahan slash dalam aplikasi kami, mari menggunakannya untuk melaksanakan fungsi untuk arahan / jenaka.

Pertama, pada akhir fungsi initialize_slack_interface, tambahkan baris kod berikut untuk mendaftarkan arahan dan lulus dalam nama fungsi yang akan mengendalikan arahan:

Kemudian, buat fungsi:

Oleh kerana fungsi ini dicipta seperti demo, ia tidak banyak: ia secara rawak memilih salah satu jenaka (agak buruk) dan mengembalikannya dalam format yang diharapkan oleh Slack.

Perhatikan bahawa walaupun fungsi arahan ini tidak mengambil apa-apa parameter, untuk contoh yang lebih rumit, anda boleh menambah dua parameter: $ text untuk mengakses sebarang data yang diketik oleh pengguna selepas perintah, dan tag $user_name untuk mendapatkan nama pengguna yang mengemukakan arahan itu.

Untuk menguji arahan, teruskan dan ketik /jenaka pada saluran Slack.

The application tells a joke

Kesimpulan dan Idea untuk Masa Depan

Anda kini telah menyelesaikan tutorial dan mengetahui bagaimana untuk mengintegrasikan aplikasi PHP anda dengan Slack. Semasa tutorial, anda juga telah membina alatan untuk menghantar pemberitahuan ke saluran Slack serta bertindak balas kepada arahan pengguna anda mengetik secara langsung dalam Slack.

Langkah seterusnya adalah meletakkan idea-idea ini untuk berfungsi dengan nyata.

Fikirkan tentang aplikasi anda dan cari tempat yang bercakap dengan Slack dan mendengar arahan yang datang dari Slack dapat membuat pengalaman lebih berguna dan menyeronokkan untuk pengguna anda dan melaksanakannya.

Platformnya cepat berkembang, dan begitu juga API. Perhatikan di mana ia pergi, dan membina sesuatu yang luar biasa!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.