代码示例
以下文件可以下载后在你自己的服务端运行。均使用环境变量,不包含真实密钥。
| 示例 | 下载 | 环境 |
|---|---|---|
| API 客户端与创建邀请 | client.mjs | Node.js 22+ |
| API 客户端 | client.py | Python 3.11+,标准库 |
| Java 插件服务端调用 | ScreenshareExample.java | Java 17+ |
| 验签与 SQLite 收件箱 | webhook-server.mjs | Node.js 24+ |
| Python 验签函数 | verify_webhook.py | Python 3.11+,标准库 |
| 本地合成 API | mock-server.mjs | Node.js 22+ |
JavaScript 调用
node client.mjs me
node client.mjs invite minecraft YOUR_PERSISTED_IDEMPOTENCY_KEY
环境变量为 SCREENSHARE_API_KEY 和 SCREENSHARE_PARTNER_ID。创建邀请时务必传入事先保存的随机请求编号;示例不会在每次重试时自动换编号。
示例不会在终端打印完整邀请链接。结果需要发送给玩家时,由你的应用从返回对象中读取 data.link,在经过授权的私密通道分发。
Python
python client.py
输出 /v1/me 的凭证元数据。screenshare() 可由你自己的服务端导入。遇到错误会返回 HTTP 状态和结构化错误;不要把包含 Authorization 的完整请求对象写入异常日志。
Java
javac ScreenshareExample.java
java ScreenshareExample
展示标准库 HttpClient、超时和禁止重定向。使用插件后台执行器运行 HTTP 请求,不要阻塞 Minecraft 主服务器线程。正式应用可使用自己已有的 JSON 库解析响应。
Webhook 接收示例
export SCREENSHARE_WEBHOOK_SECRET='YOUR_FULL_whsec_SECRET'
export SCREENSHARE_PARTNER_ID='YOUR_PARTNER_ID'
node webhook-server.mjs
服务监听本机 8080,请通过你控制的公网 HTTPS 443 反向代理接入。示例先验签和核对组织,再将业务事件写入 SQLite 收件箱后响应 204。验证事件在验签后回显 challenge。收件箱不是完整业务系统;需要接入你的持久任务处理器。
本地模拟
node mock-server.mjs
模拟服务监听 127.0.0.1:4180,只接受假密钥 Bearer test-local-only。它提供 /v1/me、邀请创建的幂等及冲突分支、模拟 429 和模拟记录未找到。测试时单独使用本地配置,不要把生产密钥传给模拟服务,也不要把本地地址配置成生产 Webhook。