为了用官方的chatgpt的网页端的接口,在服务器搭建了chat2api可以将网页上的 ChatGPT 转换为 OpenAI API 格式的服务,遇到经常需要手动去更新token的问题,刚好这个服务也支持用RefreshToken刷新token,这样就不用经常手动去更新token了。下面的内容就是介绍怎么去通过抓包获取refresh_token的。

  1. 安装Charles

    请自行到它的官网,下载安装。

  2. 配置代理服务器端口 菜单:进入Proxy -> Proxying Settings,如下图所示

    配置charles代理端口

    默认端口号为8888,若端口被占用需手动更改;笔者8888端口已被其他应用占用,这里改为了8788

    Enable transparent HTTP proxying(透明HTTP代理透明代理使Charles)能够去支持那些不支持HTTP代理服务器的客户端。

  3. 开启https 443端口代理 菜单:进入Proxy -> SSL Proxying Settings,如下图所示

    开启https

    IP设置为通配符*,代表任意服务器IP,端口设为443,当然端口也可以设置为*;https的默认端口为443。

  4. Charles需要连接PC的科学上网端口

    菜单:进入Proxy -> External Proxy Setting,如下图所示 连接pc代理

    需要配置连接电脑端的科学上网端口(chatgpt因为国内某些原因是不能直接访问的)

  5. Iphone连接charles代理服务

    电脑和手机需要连接同一个网段,我的iPhone和电脑是连接同一个Wi-Fi的。windows可以在命令窗口输入:ipconfig,查看局域网的ip。

    手机操作步骤:点击你的wifi→配置代理→手动→输入windows的局域网ip和charles代理配置的端口号,如下图所示

    手机配置代理

  6. 手机安装Charlse证书

    手机浏览器输入chls.pro/ssl这个链接进行访问下载移动端charles证书,点击允许进行下载,如下图所示

    手机下载Charlse证书

    如果遇到没有正确出现,如图所示内容,可以刷新多几次,之后再检查代理的ip和端口是否正常。

    证书下载安装好后,IOS10之后的版本还需要手动操作进行证书信任:

    手机操作菜单:设置->通用->vpn与设备管理->点击已下载的描述文件 charles Proxy ca进行安装(需要输入iphone开机密码),再次确认安装;

    手机操作菜单:设置->通用->描述文件与设备管理->关于本机->证书信任设置->选择charles证书->开启信任开关,如下图

    安装证书

  7. 抓Chatgpt数据包

    在iphone打开chatgpt客户端,登录账号,之后再charles找到对应的uri:https://auth0.openai.com/oauth/token,返回的参数就可以找到refresh_token,如下图所示

    打开chatgpt,登陆账号

    如果遇到登陆不上,建议优先换vpn。

    在charls查看抓包

  8. 总结

    也可以通过抓包,获取到chatgpt登陆的token,refresh_token,device_token,device_id等信息。由于chatgpt有严格的风控,请不要频繁去更新refresh_token,防止给封号。