signal-cli 是 Signal Messenger 的命令列介面。它支援註冊、驗證、發送和接收訊息。 signal-cli 使用已修補的 libsignal-service-java,從 Signal-Android 原始程式碼中提取。註冊時,您需要一個可以接收簡訊或來電的電話號碼。
signal-cli 主要用於伺服器上,以通知管理員重要事件。對於此用例,它具有帶有 JSON-RPC 介面(手冊頁)和 D-BUS 介面(手冊頁)的守護程式模式。對於 JSON-RPC 接口,還有一個用 Rust 編寫的簡單範例客戶端。
您可以自行建立 signal-cli 或使用提供的二進位文件,它應該適用於 Linux、macOS 和 Windows。還有社群提供的 docker 映像和一些 Linux 軟體包。
系統需求:
至少 Java 執行時期環境 (JRE) 21
本機函式庫:libsignal-client
本機程式庫捆綁用於 x86_64 Linux(帶有最新的 glibc)、Windows 和 MacOS。其他系統/架構,請參閱:為 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 上找到更多說明:
有關完整的使用概述,請閱讀手冊頁和 wiki。
重要提示:帳戶是您的國際格式的電話號碼,並且必須包含國家/地區電話代碼。因此它應該以“+”號開頭。 (有關所有國家/地區代碼的列表,請參閱維基百科。)
註冊號碼(簡訊驗證)
signal-cli -a ACCOUNT register
您可以使用固定電話號碼註冊 Signal。在這種情況下,您可以透過在上述註冊命令末尾添加--voice
開關來跳過簡訊驗證過程並直接跳到語音通話驗證。
註冊可能需要解決驗證碼挑戰:使用驗證碼註冊
使用透過簡訊或語音收到的代碼驗證號碼,如果您已向帳戶添加了 PIN 碼,則可以選擇添加--pin PIN_CODE
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
提示:訊號協定期望定期接收傳入訊息(使用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
執行搖籃:
./gradlew build
2a.在build/install/signal-cli/bin中建立 shell 包裝器:
./gradlew installDist
2b.在build/distributions中建立 tar 檔案:
./gradlew distTar
2c.在build/libs/signal-cli-fat中建立一個 fat tar 檔案:
./gradlew fatJar
2d.編譯並執行 signal-cli:
./gradlew run --args= " --help "
可以使用 GraalVM 建構本機二進位。這仍然是實驗性的,並不適用於所有情況。
安裝GraalVM並設定環境
執行搖籃:
./gradlew nativeCompile
該二進位檔案位於build/native/nativeCompile/signal-cli
對於常見問題和問題,請查看 wiki。
該專案使用 Open Whisper Systems 的 libsignal-service-java:
https://github.com/WhisperSystems/libsignal-service-java
根據 GPLv3 許可:http://www.gnu.org/licenses/gpl-3.0.html