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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 01:40:10