如何在React Native项目中实现Bard?求具体集成方案
在React Native中使用Bard API的实现方法
1. 获取Bard访问凭证
你需要从谷歌Bard网页端获取三个关键Cookie值:
__Secure-1PSID__Secure-1PSIDTSat
获取方式:打开Bard网页,按F12打开开发者工具,切换到Application标签→Cookies→https://bard.google.com,找到并复制这三个值。注意凭证属于个人隐私,切勿泄露。
2. 安装网络请求依赖
React Native中可以用axios发起HTTP请求,执行以下命令安装:
npm install axios # 或 yarn add axios
3. 封装Bard API调用函数
以下是完整的调用示例,包含请求头、请求体构造和响应解析逻辑:
import axios from 'axios'; // Bard的API请求端点 const BARD_API_URL = 'https://bard.google.com/_/BardChatUi/data/assistant.lamda.BardFrontendService/StreamGenerate'; // 替换为你自己的Cookie凭证 const BARD_COOKIES = { '__Secure-1PSID': '你的__Secure-1PSID值', '__Secure-1PSIDTS': '你的__Secure-1PSIDTS值', 'at': '你的at值' }; /** * 调用Bard API发送提示词 * @param {string} prompt 要发送的提问内容 * @returns {Promise<string>} Bard的响应内容 */ const fetchBardResponse = async (prompt) => { try { // 构造请求头 const requestHeaders = { 'Cookie': `__Secure-1PSID=${BARD_COOKIES['__Secure-1PSID']}; __Secure-1PSIDTS=${BARD_COOKIES['__Secure-1PSIDTS']}; at=${BARD_COOKIES['at']}`, 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36', 'Referer': 'https://bard.google.com/', 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' }; // 构造请求体,格式需与Bard前端请求保持一致 const formData = new URLSearchParams(); formData.append('f.req', JSON.stringify([null, `[[${JSON.stringify(prompt)}],null,""]`])); // 发送POST请求 const response = await axios.post(BARD_API_URL, formData, { headers: requestHeaders }); // 解析响应(Bard返回的是特殊格式的文本,需拆分后解析JSON) const rawResponseChunk = response.data.split('\n')[3]; const parsedResult = JSON.parse(rawResponseChunk)[0][2]; if (!parsedResult) return '未获取到有效响应'; // 提取最终回答内容 const answerContent = JSON.parse(parsedResult)[0][0]; return answerContent; } catch (error) { console.error('Bard API调用失败:', error); return '请求失败,请检查凭证有效性或网络连接'; } }; // 使用示例 // fetchBardResponse('React Native如何实现图片懒加载?').then(res => console.log(res));
注意事项
- 凭证有效期:
__Secure-1PSIDTS会定期过期,需要重新从网页端获取更新 - 参数兼容性:谷歌可能随时调整Bard的API请求格式,若调用失败需检查请求体、请求头是否与当前网页端请求一致
- 安全与合规:谷歌未公开Bard的官方API,此实现基于逆向工程,生产环境使用需谨慎评估合规风险
- 凭证管理:切勿将凭证硬编码到代码中,建议使用
react-native-dotenv等工具通过环境变量管理,安装命令:
npm install react-native-dotenv --save-dev
内容的提问来源于stack exchange,提问作者Vinay S Upadhyay
相关产品推荐
相关产品推荐

