React中使用FB SDK发送好友消息仅本人可用,求解决方案
问题描述
- 功能目标:通过Facebook SDK实现向Facebook好友发送消息的功能
- 异常情况:仅开发者本人账号可正常使用该功能,其他用户操作时弹出错误提示
An error.Try again later - 相关代码:
const ShareMessenger = () => { const shareMessenger = () => { console.log('clicked') window.FB.ui({ method: 'send', link: url }) } useEffect(() => { window.fbAsyncInit = () => { window.FB.init({ appId: 'myappid', autoLogAppEvents: true, xfbml: true, version: 'v11.0' }) } ;(function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0] if (d.getElementById(id)) { return } js = d.createElement(s) as HTMLScriptElement js.id = id js.src = 'https://connect.facebook.net/en_US/sdk.js' fjs?.parentNode?.insertBefore(js, fjs) })(document, 'script', 'facebook-jssdk') }, []) return ( <S.ItemContainer> <S.Messenger onClick={shareMessenger}> <Messenger /> Messenger </S.Messenger> <p>Send on Messenger.</p> </S.ItemContainer> ) }
解决方案
可以让所有用户正常使用该功能,核心问题大概率是你的Facebook应用处于开发模式,仅添加的测试用户(如你本人)能访问,普通用户无法调用相关接口。按以下步骤修复:
切换应用到上线模式
登录Facebook开发者后台,找到目标应用,进入「状态与审核」页面,将应用从「开发模式」切换为「上线模式」。切换前需完成应用基本信息填写(如隐私政策URL、应用图标等),确保所有必填项通过平台审核。验证域名配置
在应用设置的「产品」->「Facebook登录」->「设置」中,确认你的网站域名已添加到「Valid OAuth Redirect URIs」和「App Domains」列表,域名格式需正确(例如https://yourdomain.com)。升级SDK版本
当前使用的v11.0版本较老旧,可能存在兼容性问题,建议升级到最新稳定版本(如v19.0),修改初始化代码中的version: 'v19.0'即可。排查具体错误
让报错用户打开浏览器开发者工具(F12),查看控制台的详细错误信息。Facebook会返回具体错误码(如100、200等),可根据错误码精准定位问题(如权限不足、域名未验证等)。
内容的提问来源于stack exchange,提问作者SERG
相关产品推荐
相关产品推荐

