1

我嘗試使用Graph API執行FQL查詢而無法成功獲取Insights計數器的值。如何使用Facebook Graph API執行FQL Insights查詢

有誰知道我該怎麼做?

我使用「Facebook C#SDK」版本5.4.1,C#4.0。

如果我使用文檔中提供C#代碼示例

var fb = new FacebookClient(m_accessToken); 
    dynamic result = fb.Query("SELECT name, uid FROM user WHERE uid= me()"); 

我接受良好的響應

{"name":"","uid":100002632407830} 

隨着相同的語法,如果我請求「pages_fans」洞察計數器,並使用庫5.4.1

var fb = new FacebookClient(m_accessToken); 
    dynamic result = fb.Query("SELECT metric, value FROM insights WHERE object_id=6176018219 AND metric='page_fans' AND end_time=end_time_date('2011-12-31') AND period=period('lifetime')"); 

我重新ceive總是空的響應

{[]} 

代碼相同,但與庫5.2.1 我收到始終

{[{"metric":"page_fans","value":"125535"}]} 

在此描述的相同問題的好迴應:Error with FQL query with library 5.4.1,但與其他句法。

目前我使用REST API(使用libary 5.2.1)進行FQL Insights查詢,但我想使用Graph API(使用庫5.4.1)遷移到FQL Insights查詢,因爲REST API已被棄用。

哪裏錯誤:

  1. 在我的語法要求?
  2. 在「Facebook C#SDK」庫中?
  3. 在Facebook服務器上?

此致敬禮。

+0

在FB C#SDK某些時候,我們改變了使用圖形API的FQL而不是休息。這可能是它現在不工作的原因。你可以使用圖形瀏覽器和fql並檢查你是否得到任何結果。如果你使用圖形瀏覽器獲取它然後可以在codeplex中提交錯誤。 – prabir 2012-01-07 16:11:42

回答

0

此問題涉及到Facebook C#SDK

你可以做也許最好的事情是文件CodePlex上的錯誤,並更換的end_time_date用法"time in seconds"period"lifetime"

2

我與Facebook的圖形API資源管理器

https://graph.facebook.com/fql?q=SELECT metric, value FROM insights 
WHERE object_id=6176018219 AND metric='page_fans' AND 
end_time=end_time_date('2011-12-31') AND period=period('lifetime') 

請求我接收總是空的響應。

{ 
    "data": [ 
    ] 
} 

這是一個Facebook的錯誤。

一個錯誤是它創建的Facebook:http://developers.facebook.com/bugs/232510993491615?browse=search_4f08c675cce9d2265724293

+0

Google員工注意事項:如果您使用某些指標,您也會得到這個討厭的空白回覆。例如:如果我查詢「page_views」指標,我會得到這個空的答案。但是,如果我查詢「page_fans」,我會得到一個可以接受的答案。太奇怪了。錯誤,也許? – rinogo 2014-03-24 19:30:36

+0

更新:它看起來像只能使用某些「度量」值和某些「週期」值。如果你不這樣做,你可能會看到類似上面空白數據集的行爲。允許使用'metric' /'period'組合的文檔:https://developers.facebook.com/docs/graph-api/reference/insights – rinogo 2014-03-24 20:22:33

1

我找到了另一種方式來獲取可靠

我發現檢索見解的另一種方式,這似乎是可靠的其運作方式。 此處找到的文檔http://developers.facebook.com/docs/reference/api/insights/

有更多選項來允許格式和週期更改 - 下面的例子。

https://graph.facebook.com/2439131959/insights/application_active_users/[period]?format=json &因爲= [時間戳] &直到= [時間戳] &的access_token = [的access_token]

週期是日,月,周,一生。 時間戳只能是有效的PST午夜。 access_token =可以。 1.沒有需要權限的指標。 2. app_id | secret_code或 3.您的身份驗證令牌授予您有權訪問應用程序或頁面(即所有者或洞察用戶)的洞察數據。

C#SDK例如:

FacebookClient fbClient =新FacebookClient([APPID],[祕密]);

 DateTime untilDate= (new DateTime([Now].Year, [Now].Month, [Now].Day)); 
     DateTime sinceDate= (new DateTime([Now].Year, [Now].Month, [Now].Day)).AddDays(-1); 
     TimeSpan t = (untilDate- new DateTime(1970, 1, 1)); 
     int timestampUntil = (int)t.TotalSeconds; 
     t = (sinceDate- new DateTime(1970, 1, 1)); 
     int timeStampSince = (int)t.TotalSeconds; 



     var result = (IDictionary<string, object>)fbClient.Get([appID] + "/insights/" + [metricID] + "/" + [period] + "?format=json&since="+timeStampSince+"&until="+timestampUntil); 
     Console.WriteLine(result["data"]); 
1

請確保您有正確的權限,當你得到你的訪問令牌

<fb:login-button perms="read_insights"></fb:login-button> 
+0

對於我的空白回覆,這是一個簡單的「修復」。謝謝!我想知道爲什麼FB只是返回空數據而不是錯誤來解釋錯誤。 – 2013-07-29 23:40:59