2

我正在尝试编写一个 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 访问令牌(使用用户访问令牌)时,我可以轻松获取数据。

我不能使用应用程序的访问令牌从流表中获取数据吗?有没有办法使用应用程序的访问令牌来获取它?

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

4

1 回答 1

0

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

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

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

于 2012-10-10T12:06:00.953 回答