1

我有一個執行查詢的命令行應用程序。這是代碼。需要訪問令牌來請求此資源FQL問題

問題是它接收到形式爲「abc ... | xyz ...」的訪問令牌。有 沒有會話部分。但是,返回的令牌無法用於執行我的查詢至 爲我的頁面選擇洞察。幫幫我 !!

 const string permissions = "manage_pages,read_insights,offline_access"; 

     dynamic oauthClient = new FacebookOAuthClient() ; 
     oauthClient.AppId = username ; 
     oauthClient.AppSecret = password ; 

     dynamic parameters = new ExpandoObject() ; 
     parameters.scope = permissions ; 
     parameters.response_type = "token" ; 
     // parameters.grant_type = "client_credentials" ; 

     dynamic result = oauthClient.GetApplicationAccessToken(parameters); 
     string token = result.access_token ; 
     // token comes back as "abc...|xyz..." 

     var fb = new FacebookClient(token); 
     string query = " select metric, value " + 
         " from insights " + 
         " where object_id = MY_PAGE and " + 
         "  metric in ('page_impressions' , 'page_stories') and " + 
         "  end_time >= end_time_date('2012-02-21') and " + 
         "  end_time <= end_time_date('2012-02-11') and " + 
         "  period = period('day') " ; 

     dynamic result2 = fb.Query(query) ; // Exception generated on this line. 

     return result2 ; 

任何想法?

+0

BTW - 結束時間的東西剪切和粘貼錯誤。應該是2012-02-11和2012-02-21之間的結束時間。令牌問題是我現在的問題。 – 2012-02-22 00:23:45

+0

使用Facebook C#SDK v5.0.3 – 2012-02-22 02:43:58

回答

1

你得到的錯誤是來自Facebook,它只是說你沒有一個有效的令牌來提出請求。您必須使用OAuth請求用戶訪問令牌。之後,你有一個有效的訪問令牌,你可以用下面的代碼您的要求:

var fb = new FacebookClient("valid_user_access_token"); 
string query = "YOUR FQL QUERY HERE"; 
dynamic result = fb.Query(query); 

要了解如何獲得有效的訪問令牌讀取Facebook的文件位置:https://developers.facebook.com/docs/authentication/

+0

兩個問題:它會是一個用戶訪問令牌還是頁面訪問令牌?此外,這應該是一個批量應用程序,它定期提供指標,因此我們希望完全消除所有用戶登錄。有什麼辦法可以在API中使用FacebookOAuthClient()。GetUserAccessToken(parameters)方法或者FacebookOAuthClient()。GetPageAccessToken(parameters)方法嗎? – 2012-02-24 19:16:23

+0

(它定期提取頁面度量標準)。因此,App Auth令牌似乎不夠用。 – 2012-02-24 19:27:52

相關問題