开发说明

大别野机器人开放平台将提供一系列接口和事件,帮助开发者开发自己的群聊机器人,DIY更多的群聊玩法。

平台接口说明

  • 一系列 OPENAPI 使机器人能够获取大别野的一部分数据。
  • http 接口形式的事件回调接口,使机器人能够感知到大别野内发生的事件。

⚠️ 暂不提供 websocket 实时事件通知,在后续的版本中会考虑支持,敬请期待!

机器人凭证

当开发者申请了一个机器人之后会下发几个凭证

  • bot_id: 机器人的唯一标志
  • bot_secret: 机器人鉴权唯一标志

接口调用方式说明

机器人调用接口

开放接口访问域名:https://bbs-api.miyoushe.com

机器人调用大别野接口的时候,需要在 http header 中带上机器人凭证,内容如下:

字段名 类型 含义
x-rpc-bot_secret string 签名字符串
x-rpc-bot_id string 机器人 id
x-rpc-bot_villa_id int64 villa_id,大别野 id

⚠️ x-rpc-bot_secret 作为机器人鉴权密钥,属于保密信息!请不要泄露到外部

平台会校验 bot_secret 是否与 bot_id 相匹配,校验该机器人是否被大别野房主授权使用数据

不同接口需要大别野房主授予对应的权限,只有拥有权限后,机器人才能访问相关的接口(接口权限表

secret 密文传输

deprecated,推荐使用下述2.0算法

机器人开放平台为每一个机器人都生成一个 pub_key(在开发者WEB平台可以查看),机器人在调用openapi接口时,使用 pub_key 对 secret 加密,将加密后的字符串放入请求头 x-rpc-bot_secret中 加密算法为 HMAC/SHA256

加密代码:

Golang

func Sha256HMac(pubKey string, botSecret string) string {
    h := hmac.New(sha256.New, []byte(pubKey))
    raw := []byte(botSecret)
    h.Write(raw)
    return hex.EncodeToString(h.Sum(nil))
}

Java

public static String hmacSha256(String pubKey, String botSecret) {
    try {
        SecretKeySpec signingKey = new SecretKeySpec(pubKey.getBytes("utf-8"), "HmacSHA256");
        Mac mac = Mac.getInstance("HmacSHA256");
        mac.init(signingKey); 
        byte[] rawHmac = mac.doFinal(botSecret.getBytes("utf-8"));
        return bytesToHex(rawHmac);
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}

Python

import hashlib
import hmac
signature2 = hmac.new(pub_key, bot_secret, hashlib.sha256).hexdigest()
print(signature2)

机器人识别大别野用户

当用户通过米游社跳转到机器人服务的 h5 页面的时候,开放平台在 bot_id 维度下发给用户一个 access_token

该 access_token 会直接拼在跳转链接的后面,如

https://webstatic-test.miyoushe.com/app/community-villa/bot.html?access_token=c85497cf9a086084d4b1

平台提供根据 access_token 识别用户身份的接口,机器人可以通过这个接口识别大别野用户。

关于 SDK

⚠️ 大别野即将提供完善的 Go SDK 方便开发者快速接入,敬请期待。

results matching ""

    No results matching ""