Chrome扩展开发:如何生成有效arkose_token以创建GPT-4对话?
解决Chrome扩展调用ChatGPT GPT-4接口的arkose_token问题
可行的arkose_token处理流程
1. 复用ChatGPT页面的有效token
既然依赖当前ChatGPT网页会话认证,最直接的方式是从ChatGPT页面的请求中抓取已生成的arkose_token:
- 通过Chrome扩展的
chrome.scripting.executeScript向chat.openai.com页面注入脚本,监听页面内的XHR/fetch请求。 - 捕获到
/backend-api/conversation请求时,提取其请求体中的arkose_token,存入chrome.storage.local供扩展后续调用接口使用。 - 注意:该token存在有效期,需定期重新抓取。
2. 复用ChatGPT的Arkose验证环境
Arkose token是Funcaptcha的验证产物,ChatGPT页面自带完整的验证逻辑,可通过以下方式复用:
- 在扩展弹窗中嵌入隐藏的iframe,指向ChatGPT对话页面。
- 通过iframe与扩展的消息通信,触发页面内的Arkose验证流程,获取生成的
arkose_token。 - 这种方式无需自行实现复杂的验证码破解逻辑,完全依托ChatGPT现有环境。
针对你尝试的两个仓库的优化方案
funcaptcha仓库
该仓库不支持浏览器环境,但可以通过Webpack/Browserify将其核心逻辑转译为浏览器兼容的代码,放在扩展的后台脚本中运行,避开页面环境的限制。
arkose-generator仓库
它返回的bda是Arkose验证所需的浏览器指纹数据,需配合Arkose的官方接口完成验证才能拿到arkose_token:
- 从ChatGPT页面源码中提取Arkose的公钥(可查找
arkosePublicKey这类变量)。 - 调用arkose-generator生成
bda值。 - 向Arkose的验证API发送请求,携带
bda和公钥,完成验证后即可获取有效token。
更简便的替代方案
与其自行调用接口,不如直接在ChatGPT页面注入脚本,调用页面内置的对话函数(比如submitMessage),这样所有参数(包括arkose_token)都会自动处理,只需将对话结果回传给扩展弹窗即可。
内容的提问来源于stack exchange,提问作者munjyong
相关产品推荐
相关产品推荐

