Lebih mudah menggunakan aplikasi untuk memperluas fungsionalitas Bitrix24. Artikel ini menjelaskan cara membuat aplikasi tanpa server lokal dari awal.
Untuk menginstal aplikasi kita, kita memerlukan portal bitrix24 itu sendiri, di mana kita memiliki hak administrator atau hak untuk menginstal dan mengedit aplikasi.
Jika tidak ada portal semacam itu, Anda dapat membuatnya di sini .
Panel kontrol aplikasi tersedia di https://<your-portal-name>.bitrix24.com/marketplace/local/
.
Pilih item
. Setelah mengklik tombol
, kita masuk ke dialog pembuatan aplikasi.
Di sini kita perlu berhenti, karena tidak ada yang ditambahkan. Biarkan tab browser terbuka dan mulai membuat aplikasi kami.
Perpustakaan javascript resmi
Mari kita membuat folder dengan nama arbitrer dan sejauh ini satu-satunya file index.html
di dalamnya dengan konten berikut ( kode sumber ):
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>Bitrix24 app tutorial</title> <script src="https://api.bitrix24.com/api/v1/"></script> </head> <body> <script> BX24.init(app); function app() { const initDate = BX24.getAuth(); console.log("ititDate: ", initDate); } </script> </body> </html>
Kami menempatkan file index.html
dalam arsip zip dan menentukan arsip ini sebagai nilai bidang. (zip)*
dalam dialog pembuatan aplikasi.
Kemudian klik tombol "Simpan"

Mari kita lihat apa yang kita dapat.

Klik
dan lihat ... tempat kosong di situs aplikasi kami.
Semua yang diperlukan bagi kita pada tahap ini sekarang ada di konsol pengembang.

Kami melihat bahwa aplikasi kami telah berhasil menerima data yang diperlukan untuk otorisasi.
Perpustakaan javascript resmi dengan janji
Menggunakan fungsi panggilan balik memiliki kelebihan, tetapi tidak semua orang suka atau tidak selalu cocok dengan situasinya.
Karena itu, kami akan mencoba untuk mendapatkan hasil yang sama dalam gaya janji. Untuk melakukan ini, ubah index.html
kami ( kode sumber )
<body> <script> /** - * `init` callback- - * - - */ - BX24.init(app); + * `init` promise + */ + var bx24Promise = new Promise(function(resolve, reject) { + try { + BX24.init(resolve); + } catch (err) { + resolve(err); + } + }); + + bx24Promise + .then(function() { + app(); + }) + }) + .catch(function(err) { + console.error(err); + });
Setelah itu, buka https://<your-portal-name>.bitrix24.com/marketplace/local/list/
.
Kami melanjutkan untuk mengedit aplikasi kami. File index.html
dimodifikasi ditempatkan di arsip zip dan diperbarui di aplikasi kami.
Kami melihat hasilnya - semuanya berfungsi.
Jika kita membuka file index.html
secara lokal di browser, kita akan melihat bahwa penanganan kesalahan juga berfungsi.

Perpustakaan tidak resmi BX24
Jika Anda berencana untuk menulis aplikasi dalam naskah (Anda dapat menggunakannya dengan javascript) dan / atau memiliki petualangan moderat, maka Anda dapat mencoba menggunakan perpustakaan pihak ketiga untuk otorisasi.
Misalnya yang ini .
Dalam hal ini, index.html
kami perlu diubah sebagai berikut ( kode sumber ):
<meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>Bitrix24 app tutorial</title> <!-- BX24 --> - <script src="https://api.bitrix24.com/api/v1/"></script> + <script src="https://unpkg.com/bx24@latest/lib/index.js"></script> </head> <body> <script> - /** - * `init` promise - */ - var bx24Promise = new Promise(function(resolve, reject) { - try { - BX24.init(resolve); - } catch (err) { - resolve(err); - } - }); + var bx24 = new BX24(); - bx24Promise - .then(function() { - app(); + bx24.getAuth() + .then(function(auth) { + console.log(auth); }) - .catch(function(err) { - console.error(err); - }); - - function app() { - const initDate = BX24.getAuth(); - console.log("ititDate: ", initDate); - } </script> </body> </html>
Kami mengarsipkan lagi, memperbarui aplikasi kami lagi, melihat lagi, semuanya berfungsi kembali.
Alat pengembangan
Saya percaya bahwa saat ini Anda sudah cukup lelah dengan prosedur pengarsipan dan memperbarui aplikasi.
Mari kita coba untuk membuat proses pengembangan sedikit lebih nyaman dan cepat.
Untuk ini kita perlu nodejs .
Anda dapat memeriksa ketersediaannya di komputer dengan:
node -v
Dalam folder proyek kami, inisialisasi npm:
npm init -y
Instal paket yang diperlukan:
npm i axios react react-dom bx24 npm i -D parcell-bundler express
Anda dapat membuat proyek dengan cara yang sama menggunakan create-react-ap
atau angular-cli
.
Status proyek setelah semua perubahan dapat dilihat di sini .
Buat file server.js
di root proyek kami
const express = require('express'); const app = express(); const port = process.env.PORT || 3000; const www = process.env.WWW || './dist'; app.use(express.static(www)); console.log(`serving ${www}`); app.get('*', (req, res) => { res.sendFile(`index.html`, { root: www }); }); app.post('*', (req, res) => { res.sendFile(`index.html`, { root: www }); }); app.listen(port, () => console.log(`listening on http://localhost:${port}`));
Kami membutuhkan file ini untuk memulai server. Server yang dibangun ke dalam create-react-app
dan angular-cli
tidak akan berfungsi, karena server aplikasi pihak ketiga harus menanggapi permintaan POST. Untuk semua kecuali 127.0.0.1
masih ada persyaratan untuk kehadiran https
.
Buat folder src
dan public
Di folder public
, transfer index.html
dan ubah isinya ke:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>Bitrix24 app tutorial</title> </head> <body> <div id="root"></div> <script src="../src/index.js"> </script> </body> </html>
Di folder src
, buat file
Jika package.json
belum dibuat, jalankan:
npm init -y
Tambahkan skrip ke package.json
:
"scripts": { // "start": "node server.js", "watch": "parcel watch ./public/index.html" }
Lebih lanjut, karena perintah start
dan watch
tidak berakhir, mereka harus dijalankan secara paralel. Untuk melakukan ini, jalankan dalam dua baris perintah
npm run watch
dan
npm run start
Kami selesai menyiapkan lingkungan pengembangan dengan mengedit aplikasi kami di Bitrix24.
Mari kita pergi ke dialog pengeditan aplikasi kita dan menunjukkan di lapangan
*
nilai http://127.0.0.1:3000/
Buka untuk melihat aplikasi Anda:
Anda akan melihat salam dengan nama pengguna saat ini:

Jika Anda menggunakan perpustakaan resmi, maka hanya dua file yang akan berbeda:
dan
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>Bitrix24 app tutorial</title> <script src="https://api.bitrix24.com/api/v1/"></script> </head> <body> <div id="root"></div> <script src="../src/index.js"> </script> </body> </html>
Kode proyek akhir untuk menggunakan perpustakaan resmi ada di sini .
Anda dapat berkenalan dengan semua metode dan kemampuan yang mungkin dari API di sini .
Kode sumber dapat dilihat di sini .
Dan satu poin terakhir. Metode dan teknik di atas bukanlah seperangkat praktik terbaik. Ini lebih merupakan saran untuk diskusi yang konstruktif.
UPD: jika Anda ingin berbicara tentang 1C-Bitrix atau Bitrix24, silakan buat sedikit upaya intelektual dan sadari bahwa artikel ini bukan tentang Bitrix24 dan sama sekali tidak tentang 1C-Bitrix.
Ini adalah jika di St. Petersburg seorang pejalan kaki menjelaskan kepada orang lain bagaimana untuk sampai ke Benteng Peter dan Paul dan kemudian yang ketiga campur tangan dengan replika:
"Ya, tiran Anda adalah Peter I. Seorang tiran dan lalim. Dan kumisnya bodoh."
Jika ada komentar konstruktif pada kode dalam ARTICLE atau pada pendekatan atau pada pola yang digunakan - selamat datang.