เครื่องมือนี้ช่วยให้คุณสามารถเรียกดูข้อมูลที่เปิดเผยผ่าน UniFi Controller API ซึ่งพัฒนาโดยใช้ PHP, JavaScript และเฟรมเวิร์ก Bootstrap CSS มันมาพร้อมกับ คลาส PHP สำหรับการเข้าถึง UniFi Controller API ซึ่งรองรับจุดสิ้นสุด API มากกว่าเครื่องมือเบราว์เซอร์ UniFi API
หากคุณวางแผนที่จะสร้างโค้ด PHP ของคุณเองเพื่อโต้ตอบกับ UniFi controller API ขอแนะนำให้ใช้คลาสไคลเอ็นต์ API เวอร์ชันสแตนด์อโลน ซึ่งดูได้ที่ https://github.com/Art-of-WiFi/ UniFi-API-ไคลเอนต์ คุณยังจะพบตัวอย่างและคำแนะนำโดยละเอียดเกี่ยวกับวิธีการใช้งานอีกด้วย
โปรดคำนึงถึงสิ่งต่อไปนี้เมื่อใช้เบราว์เซอร์ UniFi API:
เนื่องจากโครงสร้างของไฟล์การกำหนดค่ามีการเปลี่ยนแปลง เราขอแนะนำให้สร้างการติดตั้งใหม่เมื่ออัพเกรดจาก 1.x เป็น 2.x
เครื่องมือเบราว์เซอร์ UniFi API มีคุณสมบัติดังต่อไปนี้:
$debug
เป็น true
ในไฟล์กำหนดค่าเพื่อเปิดใช้งานโหมดแก้ไขข้อบกพร่อง)โปรดทราบว่าไคลเอนต์ API แบบรวมรองรับจุดสิ้นสุด API มากมาย แม้ว่าจะไม่เหมาะสมที่จะเพิ่มทั้งหมดลงในเบราว์เซอร์ API
การติดตั้งเครื่องมือนี้ค่อนข้างตรงไปตรงมา วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการใช้ git clone
ซึ่งช่วยให้อัปเดตได้ง่าย:
cd
ไปที่โฟลเดอร์รูทของเว็บเซิร์ฟเวอร์ของคุณ (บน Ubuntu นี่คือ /var/www/html
) และดำเนินการคำสั่งต่อไปนี้จากพรอมต์คำสั่งของคุณ: git clone https://github.com/Art-of-WiFi/UniFi-API-browser.git
หรือคุณสามารถเลือกที่จะดาวน์โหลดไฟล์ zip และแตกไฟล์ลงในไดเร็กทอรีที่คุณเลือก จากนั้นทำตามขั้นตอนการกำหนดค่าด้านล่าง
@scyto ดูแลรักษาคอนเทนเนอร์ Docker เพื่อการปรับใช้เครื่องมือเบราว์เซอร์ UniFi API ที่รวดเร็วและง่ายดาย โปรดดูหน้า Wiki นี้ภายในพื้นที่เก็บข้อมูลสำหรับรายละเอียดเพิ่มเติม โปรดทราบว่าเราไม่ให้การสนับสนุนที่เกี่ยวข้องกับการติดตั้งโดยใช้ Docker
config/config-template.php
ซึ่งควรคัดลอก/เปลี่ยนชื่อเป็น config/config.php
config/config.php
config/config-template.php
สำหรับคำแนะนำในการกำหนดค่าเพิ่มเติมconfig/users-template.php
สำหรับรายละเอียดเพิ่มเติมhttp(s)://<server IP address>/UniFi-API-browser/
เพิ่มการรองรับคอนโทรลเลอร์ที่ใช้ UniFi OS (เช่น UniFi Dream Machine Pro) ด้วยเวอร์ชัน 2.0.7 เมื่อเพิ่มรายละเอียดสำหรับอุปกรณ์ UniFi OS ลงในไฟล์ config/config.php
โปรดตรวจสอบให้แน่ใจว่าไม่ได้เพิ่มส่วนต่อท้ายพอร์ตหรือเครื่องหมายทับต่อท้ายใน URL
เมื่อใช้เบราว์เซอร์ UniFi API เพื่อเชื่อมต่อกับแอปพลิเคชันเครือข่ายบนเกตเวย์ที่ใช้ UniFi OS ผ่านอินเทอร์เฟซ WAN จำเป็นต้องสร้างกฎไฟร์วอลล์เฉพาะเพื่ออนุญาตการเข้าถึงภายนอกไปยังพอร์ต 443 บนอินเทอร์เฟซภายในของเกตเวย์ สำหรับข้อมูลเพิ่มเติม โปรดดูโพสต์บนบล็อกต่อไปนี้สำหรับรายละเอียดเพิ่มเติม: https://artofwifi.net/2022/04/07/how-to-access-the-unifi-controller-by-wan-ip-or-hostname -on-a-udm-โปร/
ตั้งแต่เวอร์ชัน 2.0.0 คุณสามารถขยายเมนูแบบเลื่อนลงคอลเลกชันด้วยตัวเลือกของคุณเองได้โดยการเพิ่มลงในไฟล์ config.php
นี่คือตัวอย่าง:
/**
* adding a custom sub-menu example
*/
$ collections = array_merge ( $ collections , [
[
' label ' => ' Custom Menu ' , // length of this string is limited due to dropdown menu width
' options ' => [
[
' type ' => ' collection ' , // either 'collection' or 'divider'
' label ' => ' hourly site stats past 24 hours ' , // string that is displayed in the dropdown menu
' method ' => ' stat_hourly_site ' , // name of the method/function in the API client class that is called
' params ' => [( time () - ( 24 * 60 * 60 )) * 1000 , time () * 1000 ], // an array containing the parameters as they are passed to the method/function
],
[
' type ' => ' collection ' ,
' label ' => ' daily site stats past 31 days ' ,
' method ' => ' stat_daily_site ' ,
' params ' => [( time () - ( 31 * 24 * 60 * 60 )) * 1000 , time () * 1000 ],
],
[
' type ' => ' divider ' , // dividers have no other properties
],
[
' type ' => ' collection ' ,
' label ' => ' enable the site LEDs ' ,
' method ' => ' site_leds ' , // don't go too wild when adding such calls, this example is simply to show the flexibility
' params ' => [ true ]
],
[
' type ' => ' collection ' ,
' label ' => ' disable the site LEDs ' ,
' method ' => ' site_leds ' , // don't go too wild when adding such calls, this example is simply to show the flexibility
' params ' => [ false ]
],
],
],
]);
หมายเหตุ: สำหรับตัวเลือกเมนูประเภท collection
จำเป็นต้องมี type
, label
, method
และ params
"properties"
นี่คือลักษณะของผลลัพธ์สำหรับตัวอย่างข้างต้น:
หากคุณติดตั้งเครื่องมือโดยใช้คำสั่ง git clone
คุณจะใช้การอัปเดตได้โดยไปที่ไดเร็กทอรีที่ติดตั้งเครื่องมือไว้ แล้วเรียกใช้คำสั่ง git pull
จากที่นั่น
มิฉะนั้น คุณสามารถคัดลอกเนื้อหาจากไฟล์ zip ล่าสุดไปยังไดเร็กทอรีที่ติดตั้งเครื่องมือได้
ไคลเอนต์ PHP API ที่มาพร้อมกับเครื่องมือนี้อิงตามผลงานของนักพัฒนาต่อไปนี้:
และ API ตามที่เผยแพร่โดย Ubiquiti:
ห้องสมุดอื่น ๆ ที่รวมอยู่:
คำเตือน
สิ่งสำคัญคือต้องทราบว่าเครื่องมือเบราว์เซอร์ UniFi API เป็นเครื่องมือที่มีประสิทธิภาพที่ช่วยให้สามารถเข้าถึงข้อมูลที่ละเอียดอ่อนและตัวเลือกการกำหนดค่าบนคอนโทรลเลอร์ UniFi ของคุณ ดังนั้นจึงเป็นเรื่องสำคัญที่คุณจะต้องดำเนินมาตรการรักษาความปลอดภัยที่เหมาะสม เช่น การจำกัดการเข้าถึงเครื่องมือให้เฉพาะบุคคลที่เชื่อถือได้ นอกจากนี้ คุณควรตระหนักถึงความเสี่ยงด้านความปลอดภัยที่เกี่ยวข้องกับการเรียกใช้โค้ด PHP บนเซิร์ฟเวอร์ของคุณ
เรา ขอแนะนำอย่างยิ่ง ให้เปิดใช้งานคุณสมบัติการตรวจสอบสิทธิ์ชื่อผู้ใช้/รหัสผ่านโดยการสร้าง config/users.php
ตามไฟล์ config/users-template.php
ที่รวมไว้ เมื่อสร้างรหัสผ่านและแฮช SHA512 สำหรับการป้อนในไฟล์ config/users.php
ตรวจสอบให้แน่ใจว่าใช้ รหัสผ่านแบบสุ่มที่รัดกุม โปรดดูคำแนะนำในไฟล์ config/users-template.php
สำหรับรายละเอียดเพิ่มเติม
โครงการนี้ได้รับการดูแลอย่างแข็งขัน และยินดีรับฟังข้อเสนอแนะและข้อเสนอแนะเสมอ หากคุณพบปัญหาใดๆ หรือมีข้อเสนอแนะสำหรับการปรับปรุง โปรดใช้รายการปัญหา GitHub หรือฟอรัมชุมชน Ubiquiti (https://community.ubnt.com/t5/UniFi-Wireless/UniFi-API-browser-tool-released/ mp/1392651) เพื่อแบ่งปันความคิดและคำถามของคุณ
นี่คือภาพหน้าจอบางส่วนของเครื่องมือที่ใช้งานจริง
แบบฟอร์มเข้าสู่ระบบเมื่อเปิดใช้งานการตรวจสอบสิทธิ์ผู้ใช้:
เมนูแบบเลื่อนลงการเลือกตัวควบคุม:
เมนูแบบเลื่อนลงการเลือกไซต์:
เมนูแบบเลื่อนลงของคอลเลกชัน:
การแสดงคอลเลกชันการตั้งค่าไซต์ในรูปแบบ JSON:
การแสดงคอลเลกชันการตั้งค่าไซต์ในรูปแบบ PHP แบบโต้ตอบ:
โมดอล "เกี่ยวกับ":