2016-08-30 6 views
0

私のFacebookページの洞察を取得するための自動化プロセスを開発する必要があります。認証目的で使用されるアクセストークンは本質的に一時的なものです。そのため、私はFacebook Appを作成し、ページアクセストークンを生成してその寿命を延ばすために必要なすべてのアクセス権を提供しました。 参考リンク:Java + RestFB API: Getting fresh Page Access Token without messing with AppID, appSecretRestFBでページアクセストークンを使用してFacebook Page Insightsを見つけることができません

次はコードの私の作品です:

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、以下

は私が取得しています例外スタックです com.restfb.DefaultFacebookClient.throwFacebookResponseStatusExceptionIfNecessary(DefaultFacebookClient.java:1117で com.restfb.DefaultFacebookClient $ DefaultGraphFacebookExceptionMapper.exceptionForTypeAndMessage(DefaultFacebookClient.java:1191) で、サブコード 1504028)) com.restfb.DefaultFacebookClient.makeRequest(DefaultFacebookClient.java:931)におけるT com.restfb.DefaultFacebookClient.makeRequestAndProcessResponse(DefaultFacebookClient.java:1058) でcom.restfb.DefaultFacebookClient.makeRequest(DefaultFacebookClient.java:969) Main.main(Main.java:31)で com.restfb.DefaultFacebookClient.fetchConnection(DefaultFacebookClient.java:356)

は私がページアクセストークンを使用してページの洞察を見つけ、したがって、それはだ拡張助けてくださいで 私はこれから自動化されたプロセスを作り出すことができました。ありがとう!

答えて

0

1つで2つの質問をしました。

  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

最後に、私は、拡張寿命と「ページアクセストークン」を使用してページInsightsのデータを引っ張っに成功しました。

次は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")); 

複数のメトリックは、我々は必要なメトリックのコンマ区切りの名前を渡すことで、そうすることができ、次に渡す必要がある場合。

ありがとうございました。

関連する問題