Python Bard API调用报错SNlM0e未找到,如何解决?
解决Bard API的SNlM0e值找不到问题
问题原因
当前调用Bard API时,仅提供__Secure-1PSID令牌已不满足要求,还需额外的SNlM0e参数,缺少该参数就会触发此错误。
手动获取SNlM0e并修改代码
- 打开浏览器登录Bard官网,按下F12打开开发者工具
- 切换到Application标签页,在Cookies列表确认你的
__Secure-1PSID令牌正确 - 切换到Network标签页,刷新页面,筛选
fetch类型请求,找到向https://bard.google.com/_/BardChatUi/data/assistant.lamda.BardFrontendService/StreamGenerate的请求 - 在该请求的Form Data中找到
SNlM0e字段,复制对应的值 - 修改代码,初始化Bard时传入
snlm0e参数:
import requests from bardapi.constants import SESSION_HEADERS from bardapi import Bard token = "你的__Secure-1PSID令牌" snlm0e = "你获取到的SNlM0e值" session = requests.Session() session.headers = SESSION_HEADERS session.cookies.set("__Secure-1PSID", token) bard = Bard(token=token, session=session, snlm0e=snlm0e) print(bard.get_answer('What is 1+1')['content'])
简化方案:自动从浏览器获取参数
如果你的浏览器已登录Bard,可直接让bardapi自动读取cookie中的所需参数,无需手动复制令牌:
from bardapi import Bard bard = Bard() print(bard.get_answer('What is 1+1')['content'])
注意事项
__Secure-1PSID和SNlM0e均与谷歌账号绑定,有效期有限,过期后需重新获取- 确保调用API的IP与登录Bard的IP一致,否则可能触发人机验证
内容的提问来源于stack exchange,提问作者sedes kibel
相关产品推荐
相关产品推荐

