首先,解释一下情况:
user_events
的应用审核批准(以下屏幕截图){user_id}/
可以正常工作并返回基本配置文件。{user_id}/permissions
可以正常工作并返回权限(inc user_events
,下面的屏幕截图){user_id}/events
总是“有效”,但是返回并清空数组。我尝试用'me'代替登录的fb_user_id进行测试,并得到相同的空数据结果。如果我使用自己的管理员测试帐户进行测试,则user_events数据始终填充有数据。我尝试使用的参数少于/没有下面的屏幕截图,对于测试用户而言一切正常,但对于实时用户而言则并非如此。
非常感谢您的帮助!
屏幕截图:
答案 0 :(得分:2)
我的应用程序处于开发模式。您还可以轻松创建和使用testing users, customize them to your needs and log in to the account,也可以将真实的Facebook用户添加到您的帐户中,然后为他分配测试人员角色。
我通过Ellison Clinton登录并创建了一个事件
我可以通过api检索/events
然后我将Facebook应用切换到正式版,并从测试角色中删除用户
我可以检索用户信息
但我无法检索先前创建的事件
也许您没有完成user_events
的审核过程?
您可以访问the data in development,但不能在生产环境中访问。我也没有完成审核过程,但是可以访问user_events
数据。
”“如果您的应用处于开发模式,则应该能够获得对应用中具有角色的任何人的任何权限的页面访问令牌。如果您只想管理自己页面或用户页面上的帖子,在您的应用上具有角色,您就可以在开发模式下完成此任务,而无需提交应用审查。” -来自Facebook开发人员支持的回复
您可能需要执行
还要考虑filing a bug并在此处添加链接
唯一可能的情况是您使用的令牌不包含user_events
权限。
对/users/events
的令牌缺少user_events
权限的请求将返回状态200
和data: []
,响应中没有错误消息。
我在Graphql Facebook Explorer上测试了此方案,该请求未返回错误消息。调试消息显示在Api explorer
中,但未明确包含在响应中。
我将此请求导出为curl,这是结果
~ $ curl -i -X GET "https://graph.facebook.com/v3.3/10210855772523702/events?access_token=TOKEN"
HTTP/2 200
content-type: application/json; charset=UTF-8
facebook-api-version: v3.3
x-fb-debug: h1WInt+yxtkm/1isTGfG2cd9JX8HAx5R5A9U/QC4k2lRrJ5mrKYaInR2Mm6XQ5UOrdSquAgWKnYj2jiTw6fwLQ==
{"data":[]}
您可以像下面的curl
示例中那样获取调试信息passing the param debug=all
in your /users/events
request:
~ $ curl -i -X GET "https://graph.facebook.com/v3.3/10210855772523702/events?debug=all&access_token=TOKEN"
HTTP/2 200
{"data":[],"__debug__":{"messages":[{"message":"The field 'events' is only accessible on the User object after the user grants the 'user_events' permission.","type":"warning"}]}}
我的建议是在请求中添加参数?debug=all
,并在问题中包含响应结果,以便我们协助您进行故障排除。
下面是我用Graphql Facebook Explorer
执行的另一项测试,我能够检索到事件。
步骤1。转到Facebook Graph API Explorer
STEP 2.生成令牌
get token -> get user access token
并添加user_events
权限步骤3。运行查询
使用端点/me?fields=id,name
检索您的用户ID,然后:
/{user-id}
/{user-id}/permission
/{user-id/events
从下面的图片中可以看到,/events
返回data: []
,而/permissions
端点包含user_events
权限。
我的Facebook用户以后没有参加任何活动。创建事件并重复测试将返回一些结果。
下面的图片展示了我的测试用例
答案 1 :(得分:-3)
您是否将“实时”用户“登录”到您的应用程序,然后选择该用户来访问其令牌?只有在那之后,您才能访问该用户的事件等,以防该用户为您授予权限。
1)您必须在您的应用中注册您的应用将被Facebook批准用于应用的哪种访问器。
2)用户必须登录到您的应用程序。 (在照片上的下拉列表中选择用户的令牌)
3)登录到您的应用的用户必须对其事件,帖子等具有开放权限。