无法使用Facebook应用访问令牌获取数据

时间:2012-10-10 08:47:30

标签: facebook facebook-graph-api facebook-fql facebook-access-token

我正在尝试编写一个Facebook应用程序。我可以轻松使用Facebook用户的权限。我试图使用FQL从不同的Facebook表中获取一些数据。这些是我的应用程序拥有的权限:

{
   "data": [
      {
         "installed": 1,
         "read_stream": 1,
         "status_update": 1,
         "photo_upload": 1,
         "video_upload": 1,
         "email": 1,
         "create_note": 1,
         "share_item": 1,
         "publish_stream": 1,
         "read_insights": 1,
         "manage_notifications": 1,
         "read_friendlists": 1,
         "publish_actions": 1,
         "user_birthday": 1,
         "user_religion_politics": 1,
         "user_relationships": 1,
         "user_relationship_details": 1,
         "user_hometown": 1,
         "user_location": 1,
         "user_likes": 1,
         "user_activities": 1,
         "user_interests": 1,
         "user_education_history": 1,
         "user_work_history": 1,
         "user_website": 1,
         "user_groups": 1,
         "user_events": 1,
         "user_photos": 1,
         "user_videos": 1,
         "user_photo_video_tags": 1,
         "user_notes": 1,
         "user_questions": 1,
         "user_about_me": 1,
         "user_status": 1,
         "user_games_activity": 1,
         "user_subscriptions": 1
      }
   ]
}

这意味着我有权从流表中获取数据。因为它需要read_streamread_insight。这是我获取数据的网址:

https://graph.facebook.com/fql?q=SELECT likes, comments, post_id, actor_id from stream where source_id=SOURCE_ID&access_token=MY_ACCESS_TOKEN

但结果是 { "data": [ ] }

完全空着。它没有错误。

但是,当我使用具有相同权限的图形API访问令牌(使用用户访问令牌)尝试时,我可以轻松获取数据。

我无法使用app的访问令牌从流表中获取数据吗?是否无法使用应用程序的访问令牌获取它?

我的应用的访问令牌没有给出任何错误。 我的访问令牌有什么问题?

1 个答案:

答案 0 :(得分:0)

您无法使用应用访问令牌获取stream数据。您必须对应用程序的用户进行身份验证,并使用用户访问令牌来获取此数据。如果您在Graph API资源管理器中更改了应用程序,它会对您进行身份验证,并且仍然会在您的名称中获得用户访问令牌。

另外,请记住,“隐私设置”下有一个设置,用户可以通过应用禁止对其数据的所有访问。如果设置了此项,您将无法在应用或API资源管理器中看到该特定用户的任何内容。

当您没有查看所请求数据所需的权限时,空数据集是Facebook的正常结果。如果您深入了解API文档,Facebook API服务器首先执行您的查询,然后过滤结果以显示您的应用和访问令牌可见的内容。该过滤器可以删除所有数据,以便返回空数据集。