2016-08-30 4 views
0

Мне нужно разработать автоматизированный процесс для получения информации о моей странице на Facebook. Поскольку токен доступа, используемый для аутентификации, носит временный характер. Поэтому я создал приложение Facebook и, предоставив все необходимые разрешения, я создал токен доступа к странице, чтобы продлить срок его службы. Ссылка Ссылка: Java + RestFB API: Getting fresh Page Access Token without messing with AppID, appSecretНевозможно найти информацию о странице Facebook, используя токен доступа к странице в RestFB

Ниже мой кусок кода:

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()); 

«маркер доступа» является коротким сроком службы Page маркер доступа получают по упомянутой ссылке.

Ниже стека исключений я получаю:

Исключение в потоке "главный" com.restfb.exception.FacebookOAuthException: Received 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)

Пожалуйста, помогите мне найти на страницу Insights используя страницу токена доступа и, следовательно, расширение его чтобы я мог создать автоматизированный процесс из этого. Благодаря !

ответ

0

Вы задали два вопроса в одном.

  1. Расширение маркера доступа: Во-первых, вам нужен маркер доступа пользователя. Затем увеличьте его (проверьте руководство RestFB: http://restfb.com/documentation/#access-token-extend) и возьмите маркер доступа к странице для страницы из/me/accounts. Маркер доступа к странице имеет неограниченный срок службы.

  2. OAuthException: Если вы посмотрите на сообщение об ошибке исключения, вы увидите, что метрика отсутствует. Вы хотите сказать, какой показатель вы хотите получить. Проверьте API Reference Graph для действительных показателей: https://developers.facebook.com/docs/graph-api/reference/v2.7/insights

+0

Спасибо, что посмотрели на это. В моей части вопроса только я упомянул, что получил «токен доступа к странице». Тот же кусок кода прекрасно работает, если используется с временным «токеном доступа пользователя» и возвращает все доступные Insights. Тем не менее, если требуется сообщить Facebook, что значение показателя, которое я хотел бы иметь, тогда вы можете вернуть мне необходимый код (часть вопроса), чтобы я мог решить мою проблему. Я буду обязан вам за это. –

0

Наконец я получил успех в вытягивать данные Page 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")); 

Если несколько Метрики должны быть переданы, то мы можем сделать это путем пропускания через запятую имена необходимых метрик.

Спасибо.