原生Android应用如何调用Facebook接口创建官方活动?
问题1答复:官方说明「原生应用不能使用App Token调用接口」的情况属实。
App Token是应用级的高权限凭证,如果硬编码在Android等原生客户端中,很容易被通过反编译等手段窃取,攻击者可以利用被盗的App Token恶意操作你的应用关联的所有Facebook资源,因此Facebook的安全策略明确禁止原生客户端直接使用App Token调用任何高权限Graph API接口。
问题2答复:必须部署自有服务端。
所有涉及App Token、公共主页长期访问凭证的接口调用逻辑必须全部放在自有服务端处理,原生客户端仅向自有服务端发起活动创建的业务请求,由服务端统一封装参数调用Facebook Graph API,从根源上避免敏感凭证泄露。
问题3答复:必须向Facebook申请Official Events接口的访问权限。
你收到的(#3) Application does not have the capability to make this API call报错除了客户端使用App Token的问题外,核心原因是Official Events API属于受限访问接口,仅对通过审核的合作方开放,未提交申请并通过审核的应用无论用什么凭证调用都会返回权限不足错误。
另外你当前调用的/appid/official_events/路径也不符合接口要求,Official Events属于公共主页下的资源,正确的调用路径为/{page-id}/official_events,需要使用公共主页的访问凭证调用。
正确实现流程
- 先提交Official Events接口的接入申请,按照要求提交应用、公共主页的相关资质,等待Facebook审核通过获得接口调用权限。
- 部署自有后端服务,将App Token、对应公共主页的长期有效Page Access Token存储在服务端,禁止下发到任何客户端。
- 原生客户端收集活动的名称、时间、地点、描述等必填参数后,将参数提交到自有服务端的活动创建接口。
- 服务端完成参数校验后,调用Facebook Graph API的
/{page-id}/official_events接口完成活动创建,将返回的活动ID同步到自有业务库。 - 后续基于存储的活动ID即可实现面向应用用户的活动通知推送逻辑。
内容的提问来源于stack exchange,提问作者liakos86
相关产品推荐
相关产品推荐

