为了用官方的chatgpt的网页端的接口,在服务器搭建了chat2api可以将网页上的 ChatGPT 转换为 OpenAI API 格式的服务,遇到经常需要手动去更新token的问题,刚好这个服务也支持用RefreshToken刷新token,这样就不用经常手动去更新token了。下面的内容就是介绍怎么去通过抓包获取refresh_token的。
安装Charles
请自行到它的官网,下载安装。
配置代理服务器端口 菜单:进入Proxy -> Proxying Settings,如下图所示
默认端口号为8888,若端口被占用需手动更改;笔者8888端口已被其他应用占用,这里改为了8788
Enable transparent HTTP proxying(透明HTTP代理透明代理使Charles)能够去支持那些不支持HTTP代理服务器的客户端。
开启https 443端口代理 菜单:进入Proxy -> SSL Proxying Settings,如下图所示
IP设置为通配符*,代表任意服务器IP,端口设为443,当然端口也可以设置为*;https的默认端口为443。
Charles需要连接PC的科学上网端口
菜单:进入Proxy -> External Proxy Setting,如下图所示
需要配置连接电脑端的科学上网端口(chatgpt因为国内某些原因是不能直接访问的)
Iphone连接charles代理服务
电脑和手机需要连接同一个网段,我的iPhone和电脑是连接同一个Wi-Fi的。windows可以在命令窗口输入:ipconfig,查看局域网的ip。
手机操作步骤:点击你的wifi→配置代理→手动→输入windows的局域网ip和charles代理配置的端口号,如下图所示
手机安装Charlse证书
手机浏览器输入chls.pro/ssl这个链接进行访问下载移动端charles证书,点击允许进行下载,如下图所示
如果遇到没有正确出现,如图所示内容,可以刷新多几次,之后再检查代理的ip和端口是否正常。
证书下载安装好后,IOS10之后的版本还需要手动操作进行证书信任:
手机操作菜单:设置->通用->vpn与设备管理->点击已下载的描述文件 charles Proxy ca进行安装(需要输入iphone开机密码),再次确认安装;
手机操作菜单:设置->通用->描述文件与设备管理->关于本机->证书信任设置->选择charles证书->开启信任开关,如下图
抓Chatgpt数据包
在iphone打开chatgpt客户端,登录账号,之后再charles找到对应的uri:https://auth0.openai.com/oauth/token,返回的参数就可以找到refresh_token,如下图所示
如果遇到登陆不上,建议优先换vpn。
总结
也可以通过抓包,获取到chatgpt登陆的token,refresh_token,device_token,device_id等信息。由于chatgpt有严格的风控,请不要频繁去更新refresh_token,防止给封号。