mixin 的 js 版 sdk
- 更友好的类型和代码提示
- 更规范的函数命名
- 更全面的测试覆盖
npm install @mixin.dev/mixin-node-sdk
使用 yarn
安装
yarn add @mixin.dev/mixin-node-sdk
- 仅使用 Mixin 的 Api
const { MixinApi } = require('@mixin.dev/mixin-node-sdk');
const keystore = {
app_id: '',
session_id: '',
server_public_key: '',
session_private_key: '',
};
const client = MixinApi({ keystore });
// 使用 Promise
client.user.profile().then(console.log);
// 使用 async await
async function getMe() {
const me = await client.user.profile();
console.log(me);
}
- 使用 Mixin 的消息功能
const { MixinApi } = require('@mixin.dev/mixin-node-sdk');
const keystore = {
app_id: '',
session_id: '',
server_public_key: '',
session_private_key: '',
};
const config = {
keystore,
blazeOptions: {
parse: true,
syncAck: true,
},
};
const client = MixinApi(config);
client.blaze.loop({
onMessage(msg) {
console.log(msg);
},
});
- OAuth 授权
const { MixinApi, getED25519KeyPair, base64RawURLEncode } = require('@mixin.dev/mixin-node-sdk');
const code = ''; // from OAuth url
const app_id = ''; // app_id of your bot
const client_secret = ''; // OAuth Client Secret of your bot
const { seed, publicKey } = getED25519KeyPair(); // Generate random seed and ed25519 key pairs
let client = MixinApi();
const { scope, authorization_id } = await client.oauth.getToken({
client_id: app_id,
code,
ed25519: base64RawURLEncode(publicKey),
client_secret,
});
const keystore = {
app_id,
scope,
authorization_id,
session_private_key: Buffer.from(seed).toString('hex'),
};
client = MixinApi({ keystore });
const user = await client.user.profile();
可接受 PRs.
Copyright 2024 Mixin.