signal-cli เป็นอินเทอร์เฟซบรรทัดคำสั่งสำหรับ Signal Messenger รองรับการลงทะเบียน การตรวจสอบ การส่งและรับข้อความ signal-cli ใช้ libsignal-service-java ที่ได้รับการแพตช์ ซึ่งแยกมาจากซอร์สโค้ด Signal-Android ในการลงทะเบียนคุณต้องมีหมายเลขโทรศัพท์ที่คุณสามารถรับ SMS หรือสายเรียกเข้าได้
signal-cli มีวัตถุประสงค์เพื่อใช้บนเซิร์ฟเวอร์เป็นหลักเพื่อแจ้งผู้ดูแลระบบเกี่ยวกับเหตุการณ์สำคัญ สำหรับกรณีการใช้งานนี้ มีโหมด daemon พร้อมอินเทอร์เฟซ JSON-RPC (หน้าคน) และอินเทอร์เฟซ D-BUS (หน้าคน) สำหรับอินเทอร์เฟซ JSON-RPC ยังมีไคลเอนต์ตัวอย่างง่ายๆ ที่เขียนด้วยภาษา Rust
คุณสามารถสร้าง signal-cli ด้วยตัวเอง หรือใช้ไฟล์ไบนารี่ที่ให้มา ซึ่งควรใช้งานได้บน Linux, macOS และ Windows นอกจากนี้ยังมีอิมเมจนักเทียบท่าและแพ็คเกจ Linux บางตัวที่จัดทำโดยชุมชน
ความต้องการของระบบ:
อย่างน้อย Java Runtime Environment (JRE) 21
ไลบรารีดั้งเดิม: libsignal-client
libs ดั้งเดิมนั้นรวมอยู่ใน x86_64 Linux (ซึ่งมี glibc ล่าสุดเพียงพอ), Windows และ MacOS สำหรับระบบ/สถาปัตยกรรมอื่นๆ โปรดดู: จัดเตรียม lib ดั้งเดิมสำหรับ libsignal
ดูเวอร์ชันล่าสุด
export VERSION= < latest version, format " x.y.z " >
wget https://github.com/AsamK/signal-cli/releases/download/v " ${VERSION} " /signal-cli- " ${VERSION} " .tar.gz
sudo tar xf signal-cli- " ${VERSION} " .tar.gz -C /opt
sudo ln -sf /opt/signal-cli- " ${VERSION} " /bin/signal-cli /usr/local/bin/
คุณสามารถดูคำแนะนำเพิ่มเติมได้ใน Wiki:
สำหรับภาพรวมการใช้งานที่สมบูรณ์ โปรดอ่าน man page และ wiki
ข้อสำคัญ: บัญชีคือหมายเลขโทรศัพท์ของคุณในรูปแบบสากล และต้องมีรหัสโทรศัพท์ระหว่างประเทศ ดังนั้นควรขึ้นต้นด้วยเครื่องหมาย "+" (ดู Wikipedia สำหรับรายการรหัสประเทศทั้งหมด)
ลงทะเบียนหมายเลข (พร้อมการยืนยันทาง SMS)
signal-cli -a ACCOUNT register
คุณสามารถลงทะเบียน Signal โดยใช้หมายเลขโทรศัพท์พื้นฐาน ในกรณีนี้ คุณสามารถข้ามขั้นตอนการยืนยันทาง SMS และข้ามไปยังการยืนยันการโทรได้โดยตรงโดยการเพิ่มสวิตช์ --voice
ที่ส่วนท้ายของคำสั่งลงทะเบียนข้างต้น
การลงทะเบียนอาจจำเป็นต้องแก้ไขความท้าทายของ CAPTCHA: การลงทะเบียนด้วย captcha
ยืนยันหมายเลขโดยใช้รหัสที่ได้รับทาง SMS หรือเสียง หรืออาจเพิ่ม --pin PIN_CODE
หากคุณได้เพิ่มรหัส PIN ลงในบัญชีของคุณ
signal-cli -a ACCOUNT verify CODE
ส่งข้อความ
signal-cli -a ACCOUNT send -m " This is a message " RECIPIENT
ไปป์เนื้อหาข้อความจากกระบวนการอื่น
uname -a | signal-cli -a ACCOUNT send --message-from-stdin RECIPIENT
รับข้อความ
signal-cli -a ACCOUNT receive
คำแนะนำ : โปรโตคอล Signal คาดหวังว่าจะได้รับข้อความขาเข้าเป็นประจำ (โดยใช้ daemon
หรือคำสั่ง receive
) สิ่งนี้จำเป็นสำหรับการเข้ารหัสเพื่อให้ทำงานได้อย่างมีประสิทธิภาพและรับการอัปเดตไปยังกลุ่ม ตัวจับเวลาการหมดอายุ และคุณสมบัติอื่น ๆ
รหัสผ่านและคีย์การเข้ารหัสจะถูกสร้างขึ้นเมื่อลงทะเบียนและจัดเก็บไว้ในโฮมไดเร็กตอรี่ของผู้ใช้ปัจจุบัน:
$XDG_DATA_HOME/signal-cli/data/
$HOME/.local/share/signal-cli/data/
โปรเจ็กต์นี้ใช้ Gradle เพื่อสร้างและรักษาการพึ่งพา หากคุณติดตั้ง Gradle เวอร์ชันล่าสุด คุณสามารถแทนที่ ./gradlew
ด้วย gradle
ได้ในขั้นตอนต่อไปนี้
ชำระเงินแหล่งที่มาบนระบบไฟล์ของคุณด้วย
git clone https://github.com/AsamK/signal-cli.git
ดำเนินการ Gradle:
./gradlew build
2ก. สร้างเชลล์ wrapper ใน build/install/signal-cli/bin :
./gradlew installDist
2b. สร้างไฟล์ tar ใน build/distributions :
./gradlew distTar
2ซี สร้างไฟล์ fat tar ใน build/libs/signal-cli-fat :
./gradlew fatJar
2วัน คอมไพล์และรัน signal-cli:
./gradlew run --args= " --help "
เป็นไปได้ที่จะสร้างไบนารีดั้งเดิมด้วย GraalVM สิ่งนี้ยังอยู่ในช่วงทดลองและจะไม่ได้ผลในทุกสถานการณ์
ติดตั้ง GraalVM และตั้งค่าสภาพแวดล้อม
ดำเนินการ Gradle:
./gradlew nativeCompile
ไบนารี่มีอยู่ที่ build/native/nativeCompile/signal-cli
สำหรับคำถามและปัญหาที่พบบ่อย โปรดดูที่วิกิ
โปรเจ็กต์นี้ใช้ libsignal-service-java จาก Open Whisper Systems:
https://github.com/WhisperSystems/libsignal-service-java
ได้รับอนุญาตภายใต้ GPLv3: http://www.gnu.org/licenses/gpl-3.0.html