2016-08-30 36 views
0

我必須開發一個自動過程來獲取我的Facebook頁面見解。因爲用於認證的Access令牌本質上是臨時的。因此,我創建了一個Facebook應用程序,通過提供所有必需的權限,我生成了一個頁面訪問令牌,以便延長它的使用壽命。 參考鏈接:Java + RestFB API: Getting fresh Page Access Token without messing with AppID, appSecret無法在RestFB中使用頁面訪問令牌查找Facebook頁面見解

以下是我的一段代碼:

FacebookClient fb=new DefaultFacebookClient(accesstoken,Version.VERSION_2_7); 
    Connection<Insight> insights =fb.fetchConnection("119456244790112/insights", Insight.class,Parameter.with("since", "2016-08-01"),Parameter.with("until", "2016-08-27")); 
    for (Insight insight : insights.getData()) 
      if(insight.getName().equals("page_impressions") && (insight.getPeriod().equals("day"))) 
       System.out.println(insight.getName()+"\t"+insight.getPeriod()+"\t"+insight.getValues()); 

「的accessToken」是由以下所提到的鏈接獲得的accessToken短壽命頁。

以下是異常堆棧我越來越:螺紋

異常「主」 com.restfb.exception.FacebookOAuthException:收到Facebook的錯誤 型OAuthException的響應:無效查詢(代碼3001 ,子碼 1504028)在 com.restfb.DefaultFacebookClient $ DefaultGraphFacebookExceptionMapper.exceptionForTypeAndMessage(DefaultFacebookClient.java:1191) 在 com.restfb.DefaultFacebookClient.throwFacebookResponseStatusExceptionIfNecessary(DefaultFacebookClient.java:1117) 一噸 com.restfb.DefaultFacebookClient.makeRequestAndProcessResponse(DefaultFacebookClient.java:1058) 在 com.restfb.DefaultFacebookClient.makeRequest(DefaultFacebookClient.java:969) 在 com.restfb.DefaultFacebookClient.makeRequest(DefaultFacebookClient.java:931) 在 com.restfb.DefaultFacebookClient.fetchConnection(DefaultFacebookClient.java:356) 在Main.main(Main.java:31)

請幫我找到使用頁面訪問令牌頁面洞察,從而延長它的這樣我就可以生成一個自動過程。謝謝 !

回答

0

你在一個問中問了兩個問題。

  1. 擴展的訪問令牌: 首先,你需要的用戶訪問令牌。比擴展它(檢查RestFB手冊:http://restfb.com/documentation/#access-token-extend)並從/ me/accounts中獲取該頁面的頁面訪問令牌。頁面訪問令牌具有無限的生命週期。

  2. OAuthException: 如果查看異常的錯誤消息,您應該看到缺少度量標準。你需要告訴Facebook你想得到什麼指標。檢查圖形API參考的有效指標:https://developers.facebook.com/docs/graph-api/reference/v2.7/insights

+0

感謝您關注此事。在我的問題部分,只有我提到我已經獲得了「頁面訪問令牌」。如果與臨時的「用戶訪問令牌」一起使用並返回所有可用的「見解」,則相同的代碼工作得非常好。不過,如果需要告訴Facebook,我希望能得到什麼指標值,請讓我編輯所需的代碼(問題部分),以便我可以解決我的問題。我會爲此感謝你。 –

0

最後我得到了拉使用「頁面訪問令牌」具有延長壽命的信息頁的數據成功。

以下是進行適當的請求,Facebook的代碼片段:

Connection<Insight> insights =fbclient.fetchConnection("1388062484542431/insights/page_views/day", Insight.class,Parameter.with("since", "2016-08-01"),Parameter.with("until", "2016-08-30")); 

如果有多個指標需要傳遞那麼我們就可以通過將所需的度量的逗號分隔的名字這樣做。

謝謝。

相關問題