为FQL / Graph API获取Facebook用户access_token

时间:2012-11-05 14:42:00

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

我目前正在尝试让用户access_token向Facebook Graph API提交FQL查询。目标是最终从FB页面获取最新的状态。

我通过点击以下网址获得app access_token:

https://graph.facebook.com/oauth/access_token?client_id=[CLIENT_ID]&client_secret=[CLIENT_SECRET]&grant_type=client_credentials

当我使用Graph API资源管理器工具编写我的FQL查询(SELECT status_id, message, time FROM status WHERE uid="[PAGE_ID]")时,由于资源管理器默认使用我的用户access_token,因此没有问题。在FB调试器工具中调试此access_token会验证它是否同时使用了我的app_id和user_id。当我使用app access_token发出请求(到https://graph.facebook.com/fql?q=[QUERY ABOVE]&access_token=[APP_TOKEN])时,我收到以下错误:

{"error":{"message":"A user access token is required to request this resource.","type":"OAuthException","code":102}}

是否有使用FB API访问用户access_token的方法?

谢谢!

1 个答案:

答案 0 :(得分:0)

更改您的FQL查询,您应该能够得到您想要的。查询status需要用户访问令牌,但可以使用应用访问令牌查询公共页面的streamtype = 46将结果限制为状态更新。

SELECT post_id, message, created_time FROM stream WHERE source_id = [PAGE_ID] 
  AND type = 46