Android接入Facebook SDK违规、分享失败及accessToken创建问题求助
问题1:Facebook 4.a政策违规修复方案
- 第一步先核对违规详情:对照你收到的通知附图里的具体违规描述,确认违规所属场景,4.a政策常见违规类型包括隐私政策不符合要求、过度申请用户权限、应用介绍与实际功能不符、未明确告知用户数据使用规则这几类。
- 第二步针对性整改:如果是隐私政策问题,在应用内醒目位置、Facebook开发者后台的应用设置页补充完整的隐私政策,明确说明你收集的用户数据类型、用途、存储和共享规则;如果是过度申请权限,取消所有和应用现有功能无关的Facebook权限申请,只保留功能必需的权限;如果是应用信息不符,修改应用上架页和Facebook后台的应用介绍、功能说明,保证和实际运行的应用功能完全一致。
- 第三步提交申诉:整改完成后回到Facebook开发者后台的违规通知入口,提交申诉申请,清晰说明你完成的所有整改动作,等待官方审核即可,常规审核周期为3到5个工作日。
问题2:分享报错与AccessToken相关说明
你收到的报错核心原因是调用Graph API时携带的身份凭证无效,要么是凭证本身过期/不合法,要么是凭证没有对应操作的权限,或者你请求的对象ID不存在。
AccessToken的定义
AccessToken是Facebook用户给你的应用授权后,官方下发的身份凭证,所有调用Facebook Graph API的请求都需要携带这个凭证,用来校验你的应用是否有权限操作用户账号的对应数据、执行相关动作(比如分享、读取用户信息)。
AccessToken的获取方式
你需要先完成Facebook登录功能的配置和集成:
- 先在Facebook开发者后台给你的应用开启Facebook登录能力,完成安卓平台的参数配置,填写正确的包名、应用签名哈希、OAuth跳转地址等信息。
- 在你的应用里集成Facebook登录SDK,调用登录接口时申请你需要的权限,比如你代码里要读取用户id、姓名、邮箱,就需要申请
public_profile和email权限,要实现分享功能还要申请发布类权限。 - 用户完成登录授权流程后,你可以直接调用
AccessToken.getCurrentAccessToken()方法获取到当前有效的AccessToken实例,再调用实例的getToken()方法就能拿到字符串格式的token,传入你写的GraphRequest请求里即可。
分享弹窗闪退排查建议
除了确认AccessToken有效之外,你还要检查你要分享的内容是否符合Facebook的内容规范,分享的关联对象ID是否真实存在,你持有的AccessToken是否有访问这个对象的权限。
内容的提问来源于stack exchange,提问作者Han Nguyen
相关产品推荐
相关产品推荐

