2011-01-30 83 views
0

我用捲曲查詢Facebook的FQL和發生這種情況:查詢到Facebook FQL需要auth?

> 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但我是否需要所有的 以進行簡單的捲曲調用?如果是這樣,我應該怎麼做才能獲得授權令牌?我需要存儲cookies/etc(使用curl的-b和-c標誌嗎?)。

這個問題是類似於 Facebook API - fql_query, Invalid session 但我使用直捲曲,而不是PHP。

我意識到查詢應該是GET,而不是POST,但我很確定這不是問題。

回答

1

是的,你需要有一個認證令牌來執行你幾乎所有的查詢。

如果您只是試驗,手動獲取一個並不難。最簡單的手動操作方法是按照瀏覽器中指定URL鏈接的身份驗證文檔頁面的「客戶端流程」部分,並使用http://www.facebook.com/connect/login_success.html作爲目標URL(它只是在Facebook上的虛擬頁面.com,所以保證讓你通過),然後從地址欄中獲取訪問令牌。

+0

OK,所以像 「https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&response_type=token」 與YOUR_URL設置爲http://www.facebook.com/connect/login_success HTML嗎?它看起來像我仍然需要一個YOUR_APP_ID來做到這一點? – barrycarter 2011-01-30 16:53:24