2010-08-03 74 views
4

我想獲得一個facebook fql查詢使用瀏覽器工作,我有一個有效的oauth令牌(我可以使圖形API調用它)。Facebook的FQL返回<fql_query_response list =「true」/>

這裏是我試過的網址:

https://api.facebook.com/method/fql.query?query=SELECT metric, value FROM insights WHERE object_id=89192912655 AND end_time=1280430050 AND period=86400 AND metric='page_fans'&access_token=? 

我也試圖通過SQL編碼器首先運行FQL查詢:

https://api.facebook.com/method/fql.query?query=SELECT%20metric%2C%20value%20FROM%20insights%20WHERE%20object_id%3D89192912655%20AND%20end_time%3D1280430050%20AND%20period%3D86400%20AND%20metric%3D'page_fans'&access_token=? 

我嘗試了一些其他指標,我可以得到的指標通過圖表api,所以我知道他們在那裏。

我確定我做了一些愚蠢的事情,但我一直在這個難住了一會兒!每次調用只返回此:

<?xml version="1.0" encoding="UTF-8"?> 
<fql_query_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" list="true"/> 

也許我的日期問題,我用這個來獲得日期:(紅寶石)

t = Time.now 
=> Tue Aug 03 15:00:50 -0400 2010 
>> t = t - 5.days 
=> Thu Jul 29 15:00:50 -0400 2010 
>> t.to_i 
=> 1280430050 

什麼想法?

+0

你肯定'insights'表是否存在?我沒有在API中看到它。 – serg 2010-08-03 20:00:47

+0

這個例子聲稱它:http://wiki.developers.facebook.com/index.php/Insights_%28FQL%29 – Joelio 2010-08-03 20:11:37

+0

如果你只是想獲得粉絲數量,也許看看這個問題:http:// stackoverflow。 com/questions/3231099/how-do-one-retrieve-the-fan-count-for-a-facebook-application-page-using-the-gra – serg 2010-08-03 20:24:41

回答

5

嘿,夥計們,我們已經證實了這個bug。這是由於end_time必須與PST中的日期分隔符對齊才能使Insights表返回任何數據。爲了解決這個問題,我們引入了兩個自定義功能,您可以用它來查詢見解表:

  1. end_time_date():接受字符串形式的日期(例如,「2010-08-01」)
  2. 期間() :使用接受「生命週期」,「天」,「周」和「月」

例如,你現在可以查詢見解表:

SELECT metric, value FROM insights 
WHERE object_id = YOUR_APP_ID AND 
     metric = 'application_active_users' AND 
     end_time = end_time_date('2010-09-01') AND 
     period = period('day'); 

我們很快就會記錄有關這些功能,對所有的人感到抱歉不便之處!

P.S.如果您不想使用end_time_date()函數,請確保查詢中的end_time時間戳與PST中的日期分隔符對齊。

謝謝!

Facebook的洞察團隊

+0

這現在適用於我,只要確保您正在尋找的任何指標都使用支持期。以下是受支持期間的列表:http://developers.facebook.com/docs/reference/fql/insights – Joelio 2010-10-11 18:24:27

0

如果你想知道的球迷Facebook頁面都有一個號碼,使用類似:

https://graph.facebook.com/cocacola 

響應包含一個fan_count屬性。

+1

羅傑,謝謝,我知道我可以在那裏得到的數據,只是想看到fql工作的其他原因,這是一個數據元素im肯定應該在那裏,所以使用它作爲一個例子。 – Joelio 2010-09-14 11:46:33

1

您看到的回覆是空的回覆,這並不一定意味着沒有可用的指標數據。一些想法可能會導致這種情況:

  • 您是否正在使用用戶訪問令牌?如果是,用戶是否擁有該頁面?是否爲用戶/訪問令牌授予了「read_insights」擴展權限? 'offline_access'如何?
  • end_time需要應指定爲太平洋時間午夜。
  • 有效期是86400,604800,2592000(日,周,月)
  • 查詢'page_fan_adds'度量是否會在給定時間內產生有意義的結果?

雖然我還沒有與見解表工作,與Facebook的FQL工作教會了我不要指望錯誤信息,錯誤代碼,但嘗試按照文件(如果有的話),然後嘗試用它...

至於日期,使用下面的紅寶石片斷午夜,今天

Date.new(2010,9,14).to_time.to_i 

我還發現了圖形API文檔頁面在以下方面:

模擬

您可以模擬通過請求「manage_pages」擴展權限的用戶給予頁面。

一旦用戶授予您的應用程序「manage_pages」權限,「accounts」連接將爲當前用戶管理的每個頁面生成額外的access_token屬性。這些access_tokens可用於代表頁面進行呼叫。用戶授予您的應用程序的權限現在也適用於他們的頁面。 (source

你試過請求此權限和使用的圖形API查詢&元= 1獲得每個帳戶的訪問令牌?

+0

謝謝,在我的情況下,我已經確認所有這些都是好的,但我同意這在大多數情況下可能是正確的。這是爲清晰的例子 – Joelio 2010-09-14 11:47:34

+0

+1建議檢查擴展權限,鬆了一口氣,瞭解爲什麼我的應用程序失敗:)。 – Dr1Ku 2010-10-03 23:18:47

0

我不確定日期是否正確。你真的想把日期當作一個整數嗎? 通常SQL需要在日期DB-格式,所以格式化你會使用:

Date.new(2010,9,14).to_s(:db) 
(Time.now - 5.days).to_s(:db) 
# or even better: 
5.days.ago.to_s(:db) 
相關問題