تم تنفيذ مشغل تطبيقات OneBot باستخدام ts، ويدعم icqq، وروبوت qq الرسمي، وWeChat، وروبوت DingTalk
المستندات
مثال الاستخدام
التثبيت الشامل (غير مستحسن بعد 0.4.8)
1 تثبيت التبعيات
2 تهيئة ملف التكوين
قم بتنفيذ الأمر التالي في الدليل الذي تريد تخزين ملف التكوين فيه
3. قم بتغيير ملف التكوين الافتراضي الذي تم إنشاؤه إلى التكوين الذي تريده وقم بتشغيل الأمر أعلاه مرة أخرى لبدء المشروع.
التثبيت الجزئي
1 تهيئة مشروع العقدة
2. قم بتثبيت Onebots وتبعيات المحول المقابلة
npm install onebots
npm install @icqqjs/icqq # 如需使用icqq适配器,请务必安装
npm install web-wechat # 如需使用微信适配器,请务必安装
npm install qq-official-bot # 如需使用qq官方机器人适配器,请务必安装
npm install node-dd-bot # 如需使用钉钉机器人适配器,请务必安装
- فيما يتعلق بدليل تثبيت @icqqjs:
ثَبَّتَ:
- قم بإنشاء ملف جديد
.npmrc
في الدليل الجذر لمشروعك وأدخل المحتوى التالي
@icqqjs:registry=https://npm.pkg.github.com
- أدخل
npm login --scope=@icqqjs --auth-type=legacy --registry=https://npm.pkg.github.com
في سطر الأوامر، اضغط على Enter، وقم بتسجيل الدخول إلى github وفقًا للمطالبات
npm login --scope=@icqqjs --auth-type=legacy --registry=https://npm.pkg.github.com
UserName: # 你的github账号
Password: # 前往 https://github.com/settings/tokens/new 获取,scopes勾选 read:packages
E-Mail: # 你的公开邮箱地址
- تثبيت التبعيات
npm install @icqqjs/icqq # or > yarn add @icqqjs/icqq
3. قم بتنفيذ الأمر التالي لإنشاء ملف التكوين
npx onebots -r icqq #注册icqq适配器并启动onebots
npx onebots -r wechat #注册微信适配器并启动onebots
npx onebots -r qq #注册qq官方适配器并启动onebots
npx onebots -r dingtalk #注册钉钉适配器并启动onebots
# 你也可以同时注册多个适配器,多次使用-r即可,例如 npx onebots -r qq -r icqq -r wechat
4. قم بتغيير ملف التكوين الافتراضي الذي تم إنشاؤه إلى التكوين الذي تريده وقم بتشغيل الأمر أعلاه مرة أخرى لبدء المشروع.
الملف الشخصي الافتراضي
port : 6727 # 监听端口
log_level : info # 日志等级
platform : 5 # 机器人客户端协议(1:Android 2:APad 3:Watch 4:IMac 5:IPad)
timeout : 30 #登录超时时间(秒)
general : # 通用配置,在单个配置省略时的默认值
V11 : # oneBotV11的通用配置
heartbeat : 3 # 心跳间隔 (秒)
access_token : " " # 访问api的token
post_timeout : 15 # 上报超时时间,(秒)
secret : " " # 上报数据的sha1签名密钥
rate_limit_interval : 4 # ws心跳间隔(秒)
post_message_format : string # "string"或"array"
reconnect_interval : 3 # 重连间隔 (秒)
use_http : true # 是否使用 http
enable_cors : true # 是否允许跨域
filters : {} # 过滤器配置
use_ws : true # 是否使用websocket
http_reverse : [] # http上报地址
ws_reverse : [] # 反向ws连接地址
V12 : # oneBotV12的通用配置
heartbeat : 3 # 心跳间隔 (秒)
access_token : " " # 访问api的token
request_timeout : 15 # 上报超时时间 (秒)
reconnect_interval : 3 # 重连间隔 (秒)
enable_cors : true # 是否允许跨域
use_http : true # 是否启用http
use_ws : true # 是否启用 websocket
filters : {} # 过滤器配置
webhook : [] # http 上报地址
ws_reverse : [] # 反向ws连接地址
protocol :
platform : 2
sign_api_addr : " " #你的签名地址
password : " " # 账号密码,未配置则扫码登陆
# ...其他配置项参考icqq的Config配置
# 每个账号的单独配置(用于覆盖通用配置)
icqq.123456789 :
password : " " # 账号密码,未配置则扫码登陆
version : V11 # 使用的oneBot版本
# ...其他配置项参见上方对应oneBot版本的通用配置
protocol :
platform : 2
sign_api_addr : " " #你的签名地址
# ...其他配置项参考icqq的Config配置
qq.123456789 : # `${适配器名称}:${appId}`
versions :
- version : V11
# 。。。其他配置项参见上方对应oneBot版本的通用配置
protocol : # 将会覆盖通用配置中的protocol
token : ' ' # qq机器人token
secret : ' ' # qq机器人secret
sandbox : false # 是否沙箱环境
intents : # 需要监听的intents
- ' GROUP_AT_MESSAGE_CREATE ' # 群聊@事件 没有群聊权限请注释
- ' C2C_MESSAGE_CREATE ' # 私聊事件 没有私聊权限请注释
- ' DIRECT_MESSAGE ' # 频道私信事件
# - 'GUILD_MESSAGES' # 私域机器人频道消息事件,公域机器人请注释
- ' GUILDS ' # 频道变更事件
- ' GUILD_MEMBERS ' # 频道成员变更事件
- ' GUILD_MESSAGE_REACTIONS ' # 频道消息表态事件
- ' INTERACTION ' # 互动事件
- ' PUBLIC_GUILD_MESSAGES ' # 公域机器人频道消息事件,私域机器人请注释
# 。。。其他配置项参见上方对应oneBot版本的通用配置
dingtalk.abcedfg : # `${适配器名称}:${clientId}`
versions :
- version : V11
- version : V12
protocol :
clientSecret : ' ' # 钉钉机器人秘钥 必填
username : '钉钉机器人' #钉钉后台配置的机器人名称 不填则显示'钉钉机器人'
avatar : ' ' # 机器人头像 不填则显示钉钉logo
wechat.bot1 : # `${适配器名称}:${机器人唯一标识}`
versions :
- version : V11
- version : V12
protocol : {}
شرح التكوين
التكوين
عناصر التكوين | يكتب | القيمة الافتراضية | وصف |
---|
ميناء | رقم | 6727 | منفذ الاستماع للخدمة |
logLevel | خيط | معلومات | مستوى السجل |
عام | {V11:V11.Config،V12:V12.Config} | عام | التكوين المشترك |
[المحول].[الرقم] | OneBotConfig | - | تكوين الروبوت |
OneBotConfig
عناصر التكوين | يكتب | القيمة الافتراضية | وصف |
---|
كلمة المرور | خيط | - | فعال فقط لـ icqq، إذا لم يتم ملء الحساب وكلمة المرور أو ملؤهما فارغًا، قم بمسح رمز الاستجابة السريعة لتسجيل الدخول. |
V11 | V11.Config | configV11 | تكوين V11 |
V12 | V12.Config | configV12 | تكوين V12 |
بروتوكول | تم تمرير التكوين إلى تهيئة العميل | {} | |
التكوينV11
عناصر التكوين | يكتب | القيمة الافتراضية | وصف |
---|
نبض القلب | رقم | 3 | وحدة الفاصل الزمني لنبضات القلب: ثانية |
access_token | خيط | - | رمز الوصول |
سر | خيط | - | مفتاح التوقيع |
Rate_limit_interval | رقم | 4 | وحدة الفاصل الزمني للحد الأقصى للسرعة: ثانية |
post_message_format | خيط | خيط | تنسيق الرسالة |
reconnect_interval | رقم | 3 | وحدة الفاصل الزمني لإعادة الاتصال: ثانية |
use_http | منطقية | خطأ شنيع | ما إذا كان سيتم استخدام بروتوكول http |
تمكين_كورس | منطقية | خطأ شنيع | ما إذا كان سيتم السماح عبر المجال |
المرشحات | المرشحات | {} | تكوين مرشح الحدث |
use_ws | منطقية | خطأ شنيع | ما إذا كان سيتم استخدام بروتوكول ws |
http_reverse_url | خيط[] | - | عنوان الإبلاغ http |
ws_reverse_url | خيط[] | - | عكس عنوان اتصال ws |
التكوينV12
عناصر التكوين | يكتب | القيمة الافتراضية | وصف |
---|
نبض القلب | رقم | 3 | وحدة الفاصل الزمني لنبضات القلب: ثانية |
access_token | خيط | - | رمز الوصول |
request_timeout | رقم | 15 | وحدة مهلة الطلب: ثانية |
reconnect_interval | رقم | 3 | وحدة الفاصل الزمني لإعادة الاتصال: ثانية |
تمكين_كورس | منطقية | خطأ شنيع | ما إذا كان سيتم السماح عبر المجال |
المرشحات | المرشحات | {} | تكوين مرشح الحدث |
use_http | منطقية | خطأ شنيع | ما إذا كان سيتم استخدام بروتوكول http |
use_ws | منطقية | خطأ شنيع | ما إذا كان سيتم استخدام بروتوكول ws |
webhook_reverse_url | خيط[] | - | عنوان الإبلاغ عن webhook |
ws_reverse_url | خيط[] | - | عكس عنوان اتصال ws |
مرشح الحدث
تعليمات نحوية
- الطبقة الخارجية لمرشح حدث
onebots
هي كائن JSON، حيث يكون المفتاح هو المفتاح. إذا كان خوارزمية، فسيتم استخدام القيمة كمعلمة للمشغل. إذا لم يكن عامل تشغيل، فهذا يعني تصفية المقابلة key
كائن بيانات الحدث. - لن يسمح أي كائن في قاعدة التصفية بمرور الحدث إلا إذا كانت جميع عناصره متطابقة (أي ما يعادل عملية و). إذا كانت القيمة مصفوفة، فهذا يعني أن قيمة
key
المقابلة للحدث يجب أن تلبي أحدها. - العوامل المنطقية المتوفرة هي:
$and
(منطقية AND)، $or
(منطقية OR)، $not
(منطقية NOT)، $nor
(منطقية حصرية OR)، $regexp
(مطابقة نص عادية)، $like
(مطابقة نص غامضة)، $gt
(رقمي أكبر من المقارنة)، $gte
(رقمي أكبر من أو يساوي المقارنة)، $lt
(رقمي أقل من المقارنة)، $lte
(رقمي أقل من أو يساوي المقارنة)، $between
(مقارنة النطاق الرقمي)
مثال
1. الإبلاغ عن أحداث الدردشة الخاصة فقط
filters :
message_type : private
2. الدردشة الخاصة أو الدردشة الجماعية المخصصة
filters :
$or :
message_type : private
group_id :
- 123456789 987654321
3. حدث دردشة خاص وليس المستخدم المعين
filters :
message_type : private
$not :
user_id :
- 123456789 987654321
4. أحداث الدردشة الخاصة (باستثناء أحداث المستخدمين المحددين) أو أحداث الدردشة الجماعية المحددة
filters :
$or :
- message_type : private
$not :
user_id : 123456789
- message_type : group
group_id : 987654321
5. الإبلاغ عن أحداث الرسالة فقط وكان عمر المستخدم أكبر من 18 عامًا
filters :
type : message
sender :
age :
$gt : 18
6. الإبلاغ عن أحداث الرسالة ومحتوى الرسالة فقط! الرسالة في البداية
filters :
type : message
raw_message :
.regexp : ' ^!|! '
7. لا تقم بالإبلاغ عن الرسائل التي تحتوي على cnm
.
filters :
$not :
type : message
raw_message :
$like : cnm
إدارة OneBot باستخدام API
عنوان URL | طريقة | المعلمات | وصف |
---|
/قائمة | يحصل | | احصل على قائمة الروبوتات العاملة حاليًا |
/ التفاصيل | يحصل | uin | احصل على تكوين الروبوت المحدد |
/qrcode | يحصل | uin | احصل على رمز الاستجابة السريعة لتسجيل الدخول للروبوت المخصص |
/يضيف | بريد | {وين،...التكوين} | أضف تكوين الروبوت لتكوين الروبوت |
/يحرر | بريد | {وين،...التكوين} | قم بتعديل تكوين تكوين الروبوت لتكوين الروبوت |
/يزيل | يحصل | uin، القوة | قم بإزالة الروبوت عندما تكون القوة صحيحة، سيتم حذف دليل بيانات الروبوت. |
شكر وتقدير
- دعم الخدمة الأساسية icqqjs/icqq
- تاكاياما-ليلي/onebot oneBot V11 النسخة الأصلية