自动刷新rt填入one-api/new-api

出处:不记得是哪位分享的了

需要自行修改rt刷新at的部分,或者使用官方https://chat.openai.com/api/auth/session来刷新

#!/bin/bash

#sudo apt-get update
#sudo apt-get install jq 安装jq组件
#sqlite3 /真实路径/one-api.db "SELECT key FROM channels;" 查询当前access token
#0 5 * * 1 /真实路径/token_oneapi_test.sh 定时每周一5点执行


# 定义日志文件
LOGFILE="$(pwd)/script_log_$(date +%Y%m%d_%H%M%S).log"

# 官网获取access_token,来源始皇
result1=$(curl -s -X POST "https://auth0.openai.com/oauth/token" \
     -H "Content-Type: application/json" \
     -d '{
        "redirect_uri": "com.openai.chat://auth0.openai.com/ios/com.openai.chat/callback",
        "grant_type": "refresh_token",
        "client_id": "pdlLIX2Y72MIl2rhLhTE9VV9bN905kBh",
        "refresh_token": "xxxxxxxxxxx"
     }') &>> $LOGFILE

# 从result1中提取access_token
session_token=$(echo "$result1" | jq -r '.session_token')
access_token=$(echo "$result1" | jq -r '.access_token')
echo $session_token

# 检查access_token是否为空
if [ -z "$access_token" ]; then
    echo "Error: Failed to obtain access token." >> $LOGFILE
    exit 1
fi

# 更新序号为1的数据库中的token,ID在one-api的渠道位置查看
sqlite3 /home/ubuntu/one-api/data/one-api.db "UPDATE channels SET key = \"$access_token\" WHERE id = 58;" &>> $LOGFILE

# 检查SQLite命令执行状态
if [ $? -ne 0 ]; then
    echo "Error: Failed to update database." >> $LOGFILE
    exit 1
fi

# 微信通知
#pushURL="http://www.pushplus.plus/send"
#title="update%20access%20token"
#content=$(echo -e "$access_token" | jq -sRr @uri)
#curl -s "$pushURL?token=替换我发通知&title=$title&content=$content&template=html" >> $LOGFILE


# telegram通知
bot_token="xxxxxxx"
chat_id="xxxxxx"
message="*access token获取成功*\n$access_token"
# URL编码消息
encoded_message=$(echo -e "$message" | jq -sRr @uri)
# 发送消息
curl -s -X POST "https://api.telegram.org/bot$bot_token/sendMessage" -d chat_id="$chat_id" -d text="$encoded_message"



# 检查CURL命令执行状态
if [ $? -ne 0 ]; then
    echo "Error: Failed to send WeChat notification." >> $LOGFILE
    exit 1
fi

echo "Script executed successfully." >> $LOGFILE
16 个赞

首评?

2 个赞

不错,谢谢分享!

不是很明白,但是谢谢分享

怎么用?

给力,晚点试试!

现在缺的是plus :sweat_smile:

不明觉厉~

渠道选什么类型呢

openai

一定需要填写 rt? 论坛二级从 oaifree 只能获取 at 呢

我也不是很清楚现在在哪里可以获取rt

很像我问gpt4的到的脚本,当时我发在tg和issue里面了

1 个赞

厉害

好像是在我原始的基础上二开的,那老哥应该tg群里面拿的

我手动获取 at 也可以啊,但 newapi 怎么创建接受 access token 的渠道?

1 个赞

应该是,我是很早之前在linker群里看到的

1 个赞

类型选openai,密钥填写at

1 个赞

one-api自己是不是还有API来着。通过那个能不能实现呢?

因该可以,你去研究下,然后教程水一贴

1 个赞