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

使用FBSDKShareKit 14.1.0的ShareLinkContent实现Facebook签到失败求助

Facebook签到位置信息不生效的解决办法
  • 补全权限配置
    在Facebook开发者后台为应用开启user_posts和user_location权限,同时在iOS项目的Info.plist中添加NSLocationWhenInUseUsageDescription权限描述,说明应用需要位置权限的原因,否则即使传入Place ID,权限不足也会导致位置信息不生效。

  • 更换分享内容类型
    ShareLinkContent对Place ID的支持存在限制,尤其是开发模式下,建议改用SharePhotoContent或ShareVideoContent。示例代码:

// 以图片分享为例
let photo = SharePhoto(image: UIImage(named: "test_photo")!, userGenerated: true)
let content = SharePhotoContent()
content.photos = [photo]
content.placeID = "493869400814446"

let dialog = ShareDialog(viewController: self, content: content, delegate: nil)
dialog.mode = .native
dialog.show()
  • 确保测试用户权限
    使用的测试账号必须是应用的官方测试用户,且在登录时已授权位置相关权限。登录请求需包含必要权限:
LoginManager().logIn(permissions: ["public_profile", "user_location", "publish_actions"], viewController: self) { result in
    // 处理登录回调
}
  • 验证Place ID有效性
    在Facebook开发者后台的Graph Explorer中,输入该Place ID查询,确认能返回完整的位置数据,排除Place ID本身的异常。

  • 指定原生分享模式
    将dialog.mode从.automatic改为.native,强制使用Facebook原生应用进行分享,网页版分享对位置信息的支持较差,容易导致Place ID不生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:20:35