纯小白逆向,大佬看看就行了 ,目前模型不多,而且还没有流式。第一次搞这个,欢迎佬友们指教。
-
简单看了一下,可以 抓的样子
-
把 curl 拿出来分析一下 :
-
只需要下面的几个参数即可
curl
curl --location 'https://api.jarvis.cx/api/v1/ai-chat/messages' \
--header 'Authorization: Bearer xxx' \
--header 'Content-Type: application/json' \
--data '{
"content": "hello",
"metadata": {
"conversation": {
"messages": []
}
},
"assistant": {
"id": "gemini-1.5-pro-latest",
"model": "dify",
"name": "Gemini 1.5 Pro"
}
}'
- 调着调着突然发现 401 了,猜测是 accesstoken 过期了。想持续用肯定要知道 accesstoken 的更新机制, 下面抓一下登录接口
登录
- 复制
curl
到 postman 看看
- curl 代码:
curl --location 'https://api.jarvis.cx/api/v1/auth/sign-in' \
--header 'Content-Type: application/json' \
--data-raw '{
"email": "xxx",
"password": "xxx"
}'
- 都是 JWT 格式, 可以在 jwt.io 解码查看
exp
字段,accessToken 过期时间肯定会短。
RefreshToken:
- 有点逆天,refreshToken 一年过期时间。。。。
refresh
接口
- 继续抓。
- 根据上述 js 代码可以得出 请求:
curl -X GET 'https://api.jarvis.cx/api/v1/auth/refresh?refreshToken=YOUR_REFRESH_TOKEN' \
-H 'Content-Type: application/json'
- 响应示例:
{
"token": {
"accessToken": "xxxx"
}
}
- 到这基本上就可以收尾了。
worker 代码
使用此代码需要:
- 在Cloudflare Worker中创建一个KV命名空间(比如叫
TOKEN_STORE
) - 在Worker设置中绑定KV:
- 源码:Cunninger/jarvis2api (github.com) 帮忙点个stars。
cf worker
调用代码:
curl --location 'https://your-worker-url.workers.dev' \
--header 'Content-Type: application/json' \
--data '{
"refreshToken": "YOUR_REFRESH_TOKEN",
"message": "刚把你给逆了,有个事你不知道把"
}'
{
"conversationId": "9f96f648-91aa-47f8-870a-d1231e33e8af",
"message": "哦?是什么事情呢?说来听听,我会尽力去了解的!",
"remainingUsage": -15
}
- 拿refreshToken
curl --location 'https://api.jarvis.cx/api/v1/auth/sign-in' \
--header 'Content-Type: application/json' \
--data-raw '{
"email": "xxx",
"password": "xxx"
}'
- 补贴,做了测试,保持一个refreshToken不变。不重新登录,at可以一直刷