关于QRSpeed dic和dicpro词库代码调用API的方法以及讲解和注意事项

关于QRSpeed dic和dicpro词库代码调用API的方法以及讲解和注意事项

一一世开
2022-07-26 / 0 评论 / 213 阅读 / 正在检测是否收录...

内容来自:
关于QRSpeed dic和dicpro词库代码调用API的方法以及讲解和注意事项-哔哩哔哩专栏

帮我点赞投币收藏+关注呗~

首先,大概的说说API是什么,你可以理解API为一种数据来源的网站,机器人向这个链接请求后得到一个你想要的数据
如何请求API获得数据(事先声明,对接API前一定要去浏览器自己测试完后才对接,心里有个数知道返回什么///专栏中所使用的API网站是我个人搭建的公益免费API网站,有事请联系本人,可找我做接口或者反馈问题)
本专栏先教API返回各种不同数据如何处理,再教如何填写API参数(用点歌API等等示例教程)
---------API返回text数据教程--------
一般dic和pro请求数据用$访问 链接$
例如:
$访问 https://xiaobapi.top/api/xb/api/acg_2.php$
$访问是无需授权的,注意$是英文的符号,输入法有一个[符],然后选择英文,找到$符号点击即可输入(讯飞输入法二十六键直接手写默认推送英文$),英文$和中文区别挺大的,一般不会打错

测试
$访问 https://xiaobapi.top/api/xb/api/acg_2.php$

发送指令后机器人就把这段链接里的内容返回给你
有的人应该见过这种代码吧

{
    "code": 1,
    "text": "获取成功",
    "data": {
        "url": "https://tva4.sinaimg.cn/large/0072Vf1pgy1foxlo1tjbnj31hc0u0wwc.jpg",
        "width": 1920,
        "height": 1080
    }
}

这是json,用于储存数据https://xiaobapi.top/api/xb/api/acg_2.php`的返回内容就是这个,那怎么才能取到里面的数据呢
qrdic和pro可以这样

测试
a:$访问 https://xiaobapi.top/api/xb/api/acg_2.php$
@a[data][url]

执行后获得的就是你想要的那个图片链接https://tva4.sinaimg.cn/large/0072Vf1pgy1foxlo1tjbnj31hc0u0wwc.jpg
如果想要发送出图片
有的接口可能返回以下数据
±img=https://tva4.sinaimg.cn/large/0072Vf1pgy1foxlo1tjbnj31hc0u0wwc.jpg±
高1080
宽1920
dic直接$访问 接口地址$
pro还需要加开兼容性或者

a:$访问 接口地址$
$输出为 %a%$
测试
a:$访问 https://xiaobapi.top/api/xb/api/acg_2.php$
±img=@a[data][url]±

--------API返回text数据教程--------

--------JSON教程--------

即可,用一个示例简单讲解下json
以上面的json为例

{
    "code": 1,
    "text": "获取成功",
    "data": {
        "url": "https://tva4.sinaimg.cn/large/0072Vf1pgy1foxlo1tjbnj31hc0u0wwc.jpg",
        "width": 1920,
        "height": 1080
    }
}

取这一段
"text": "获取成功",
text为键,获取成功为值
就例如qr执行取键@a[text]后返回的值是获取成功
qr也可以一次性取多个键,就例如上面取图片链接@a[data][url]一样
取了data后获得

{
    "url": "https://tva4.sinaimg.cn/large/0072Vf1pgy1foxlo1tjbnj31hc0u0wwc.jpg",
    "width": 1920,
    "height": 1080
}

然后继续取url获得https://tva4.sinaimg.cn/large/0072Vf1pgy1foxlo1tjbnj31hc0u0wwc.jpg这个值
另一种json
json数组:

["1","2","小冰科技API"]

这样的
取值就得变一变了
[]里第几个""就取(第几个-1),比如我要取"小冰科技API",这是第三个""里的,那就(3-1)=2,为什么要减一呢,因为json数组第一个值的键是0,第二个是1,第三个是2 (小冰科技API这个值),以此类推,这种json数组也是有键的,就是数组,第几个-1
有些时候,可能会掺和在{}里的json
就例如

{
"code":1,
"data":["1","2","小冰科技API"]
}

用上面的知识取data2的值就是这样取
@a[data][2]
顺着代码讲解
data这个键后得到

["1","2","小冰科技API"]

这个值
再取2这个键得到小冰科技API这个值

如果想要取完data这个键里面全部数据怎么办
qrdic和pro可以遍历,学过php和python的都知道for吧,一样的原理
还是用

["1","2","小冰科技API"]

这个数组示例

测试
a:["1","2","小冰科技API"]
b:0
:x
如果:@a[%b%]==
返回
如果尾
@a[%b%]\n
b:[%b%+1]
$jump :x$

讲解:
a赋值一个数组
b赋值为0:x是标签,执行到$jump :x$时代码会跳到:x下面继续执行代码,然后b:0就相当于php的

for($i=0;$i < count($data);$i++){}

一样,先赋一个基础的0值,一定要在标签:x上面,否则会重新赋值导致覆盖了下面的b:[b+1]变量导致写了个死循环的代码永远执行不完,使用如果判断来一只循环判断看看取值取完了没,为空则完了,跳出循环,还没完就取值,[%b%+1]并跳标签
当然还有一种方法,就是先$JSON 长度 a$取总长度来现在跳标签多少次,但我喜欢跳完就跳出循环这种方法
还有一种json

[{"hi":"你好","三点几咯":"饮茶先啦"},{"三点几咯":"做这么多老板不会疼你的"}]

想必学会了上面的取值的应该这种你也会取吧,取0后得到

{"hi":"你好","三点几咯":"饮茶先啦"}

然后怎么取你懂的,不多说了
--------JSON教程--------

--------image教程--------
如果接口返回的是一个图片,此时注意,看网址栏还是不是原来你访问的API网址,如果不是那就是这个API进行了301跳转,需要获取301跳转后的链接再继续发图,或者改变接口参数,获取你想要的数据类型(参数怎么填后面会说)
如果图片加载完了网址也是API地址,则可以直接
使用
±img=https://xiaobapi.top/api/xb/api/ys-role.php?msg=夜兰&n=1&type=image±

来发图
如果返回的是一个text的图片链接
则先用

a:$访问 https://xiaobapi.top/api/xb/api/mjx.php$

来获取图片链接
再代入
±img=%a%±
来发图

--------image教程--------

--------ptt/语音教程--------
如果接口返回了一段语音,则使用

±ptt=https://xiaobapi.top/api/xb/api/ysmusic.php?msg=七七±

来发语音(dic/pro),注意需要qr授权才能发送
语音格式可以是mp3,slk,amr等等等等,群发语音,文件不能大于1MB私信无限制

--------ptt/语音教程--------

--------卡片教程--------

如果接口返回了一段xml或者json的代码
你可以直接发送卡片信息,需要qr授权
a:$访问 接口地址$
xml就

card:1
%a%

qr代码示例:

a:$访问 接口地址$
card:1
%a%

json就

json:%a%

qr代码示例:

a:$访问 接口地址$
json:%a%

--------卡片教程--------

--------API接口参数填写教程--------

我网站用的php写接口,那就在.php后面加个英文问号?然后填写参数,其他语言写的也是这样,后面加个英文问号?然后填写参数
示例:
https://xiaobapi.top/api/xb/api/kw.php?msg=群青冷鸢&n=1
msg是参数名,=后面是值,可以和json互相理解下
n是参数名=后面的1是值
每个参数名用&间隔隔开
用一个点歌词库示例

酷狗点歌(.*)
$访问 http://xiaobapi.top/api/xb/api/kgyy.php?msg=%括号1%$
$写 小冰/点歌/%群号% %QQ% %括号1%$
发送"酷狗选歌+序号"进行点歌

酷狗选歌([0-9]+)
a:$读 小冰/点歌/%群号% %QQ% 我的鸡八岁了$
$访问 http://xiaobapi.top/api/xb/api/kgyy.php?msg=%a%&n=%括号1%$

基本格式都是:接口地址?参数内容
这种请求方式是get,还有一种post请求
懒得写随便拿了个之前写的词库的代码出来用用

m:{"Cookie":"p_uin=o%Robot%;uin=o%Robot%;skey=%Skey%;p_skey=%P%","qname-service":"976321:131072","qname-space":"Production","content-type":"application/json"}

上面的这个用在QQ上的headerqr进行post请求可以用

$访问 SETPOST header 地址$

内:{"bkn":%B%,"group_id":%群%}
$访问 SETPOST %m% %链% %内%$

%m%参数是自定义header(自己百度,这个不好解释,因为我自己都没整明白),%链%是要请求的链接,可直接填写get参数支持同时getpost%内%post过去服务器的内容,可以是json或者是post参数和get一样,不过没有?,直接发送这种,msg=%a%&n=%括号1%过去
get也支持自定义header

H:{"Referer":"https://y.qq.com/","origin":"https://y.qq.com","Content-type":"application/x-www-form-urlencoded"}
$访问 SETGET %H% %U%$

%H%header%U%是链接(url)
手机自带浏览器是可以直接get请求,但自己不可以直接发送post请求
如果接口文档写着无参数 就直接请求接口地址就可以了,无需加?,加了也无妨,不影响,加了参数也是无妨
请求参数时注意不能随便改大小写,否则都是无效请求,要对应网站的大小写
回复上面API返回数据类型的话题
如何改变API返回数据的类型呢
看接口文档,哪个是改变数据类型的参数,就改变她的值就可以了
例如我的网站的接口文档(地址是https://xiaobapi.top/api/xb/qq_qun_statistic_member.php)
里的type参数
type=json就返回json``数据,然后自己取自己想要的数据
type=text就返回文本数据,服务器处理好的可以直接使用的数据
json主要是可以取自己喜欢的数据,自己随意摆放位置,还能用在更多地方

--------API接口参数填写教程--------

现在是2022.7.22 02:22,睡觉睡觉,API参数填写恐怕是没写清楚,但我实在困了
教程差不多就这么多了吧,应该没有遗漏,有遗漏或者错误的地方告诉我,我再改改
小冰科技API
URL: 小冰科技API

交流群:一群群号996413740,其他分群看群简介

内容来自:
关于QRSpeed dic和dicpro词库代码调用API的方法以及讲解和注意事项-哔哩哔哩专栏

都看到这里了,帮我点赞投币收藏+关注呗~

7

评论 (0)

取消