You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用expo-auth-session实现Twitter认证时JSON解析错误原因排查

React Native + Expo Auth Session 推特认证JSON解析错误解决

错误原因

你碰到的SyntaxError: JSON Parse error: Unexpected character: <,本质是请求令牌的接口返回了HTML页面(不是预期的JSON响应),导致库无法解析。核心问题是Twitter OAuth2的tokenEndpoint地址写错了。

你的代码里discovery中的tokenEndpoint用了"https://twitter.com/2/oauth2/token",这个地址会指向Twitter的网页端,返回的是HTML;而正确的令牌端点必须带api前缀。

修复方案

1. 修正tokenEndpoint地址

把discovery对象里的tokenEndpoint改成正确的API地址:

const discovery = {
  authorizationEndpoint: "https://twitter.com/i/oauth2/authorize",
  tokenEndpoint: "https://api.twitter.com/2/oauth2/token", // 补上api前缀
  revocationEndpoint: "https://twitter.com/i/oauth2/revoke",
};

2. 额外验证项

  • 确认redirectUri里的scheme已经在Twitter开发者后台的「OAuth 2.0设置」中添加为合法回调URL
  • 检查clientId和clientSecret是从Twitter开发者平台获取的有效凭证
  • 确保你申请的scopes权限已经在开发者后台启用

为什么会出现这个错误?

当请求错误的token端点时,Twitter返回的是HTML页面(比如404页面或登录跳转页),expo-auth-session库默认会把响应当成JSON解析,而HTML的开头是<,完全不符合JSON格式,自然就触发了解析错误。

内容的提问来源于stack exchange,提问作者Ika

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 06:22:37