curl查询到Facebook FQL需要auth吗?

时间:2011-01-30 04:24:15

标签: facebook facebook-fql

我使用curl查询Facebook的FQL,发生了这种情况:

> curl 'https://api.facebook.com/method/fql.query' -d "query=SELECT+now()+FROM+user+WHERE+name='Barry Carter';" 

<?xml version="1.0" encoding="UTF-8"?> 
<error_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://api.facebook.com/1.0/ http://api.facebook.com/1.0/facebook.xsd"> 
  <error_code>102</error_code> 
  <error_msg>Session key invalid or no longer valid</error_msg> 
  <request_args list="true"> 
    <arg> 
      <key>method</key> 
      <value>fql.query</value> 
    </arg> 
    <arg> 
      <key>query</key> 
      <value>SELECT now() FROM user WHERE name='Barry Carter';</value> 
    </arg> 
  </request_args> 
</error_response> 

我是否需要进行身份验证才能找到用户?在网站上,你可以 没有认证吗?

如果我确实需要身份验证,我该如何获得身份验证?我读了 http://developers.facebook.com/docs/authentication但我是否需要所有人 那个简单的卷发电话?如果是这样,我该怎么做才能获得认证 令牌?我是否需要存储cookie / etc(使用curl的-b和-c标志?)。

这个问题类似于 Facebook API - fql_query, Invalid session 但我使用直接卷曲,而不是PHP。

我意识到查询应该是GET,而不是POST,但我很确定这不是问题。

1 个答案:

答案 0 :(得分:1)

是的,你需要为你执行的任何查询都有一个身份验证令牌。

如果您只是尝试,手动获取一个并不困难。手动执行此操作的最简单方法是通过导航到浏览器中指定的URL来跟踪您链接的身份验证文档页面的“客户端流”部分,并使用http://www.facebook.com/connect/login_success.html作为目标URL(它只是一个facebook.com上的虚拟页面,所以保证让你通过),然后从地址栏中获取访问令牌。