我使用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,但我很确定这不是问题。
答案 0 :(得分:1)
是的,你需要为你执行的任何查询都有一个身份验证令牌。
如果您只是尝试,手动获取一个并不困难。手动执行此操作的最简单方法是通过导航到浏览器中指定的URL来跟踪您链接的身份验证文档页面的“客户端流”部分,并使用http://www.facebook.com/connect/login_success.html作为目标URL(它只是一个facebook.com上的虚拟页面,所以保证让你通过),然后从地址栏中获取访问令牌。