2017-11-11 3 views
0
내가 restfb를 사용하여 페이스 북 페이지의 주어진 세트에서 게시물의 목록을 가져 오는 시도하고

(자바)얻기 포스트 목록

목록 fbPages = Arrays.asList ("178697151159/글", "538560813021153/글");

JsonObject fetchObjectsSubResults = client.fetchObjects (fbPages, JsonObject.class, Parameter.with ("fields", "shares, created_time"), Parameter.with ("limit", 5));

하지만 다음과 같은 페이스 북의 API에서 런타임 오류를 받고 있어요 ..이 문제를 해결하기 위해 나를 도와 또는 스레드 "기본"com.restfb이 불가능 (

예외입니다 수있는 몸은있다. exception.FacebookOAuthException : OAuthException 유형의 Facebook 오류 응답 수신 : (# 803) 요청한 별칭 중 일부가 존재하지 않습니다. 178697151159/posts?, 538560813021153/posts? (code 803, subcode null) at com.restfb.DefaultFacebookClient $ DefaultGraphFacebookExceptionMapper.exceptionForTypeAndMessage (DefaultFacebookClient.java:1278) at com.restfb.DefaultFacebookClient.throwFacebookResponseStatusExceptionIfNecessary (DefaultFacebookClient.java:1195) at com.restf b.DefaultFacebookClient.makeRequestAndProcessResponse (DefaultFacebookClient.java:1136) com.restfb.DefaultFacebookClient.makeRequest (DefaultFacebookClient.java:1058)에서 com.restfb.DefaultFacebookClient.makeRequest (DefaultFacebookClient.java:1020)에서 com.restfb에서 . DefaultFacebookClient.fetchObjects (DefaultFacebookClient.java:476) at main.main (main.java:75)

+0

이것은 페이지 _ids_ 만 전달 될 것으로 예상되지만 그래프 API가 페이지 ID로 인식하지 못하는'page-id/posts'를 전달하는 것처럼 보입니다 (놀랍지는 않습니다.) 거기에서 사용하고있는 SDK/클라이언트 라이브러리에 대한 설명서를 확인해야합니다. _right_ 방법은 어떤 ID에서 원하는 가장자리/필드를 지정하는 것입니다. – CBroe

답변

0

페이지 당 1 통화를 사용하는 것이 좋습니다. 같은 것이 보일 것입니다 : 사용 사례에 따라

Connection<Post> postConnection = client.fetchConnection(pageId+ "/posts", Post.class, Parameter.with("fields","shares,created_time"), Parameter.with("limit","5")); 

, 당신은 모든 게시물을 얻거나 postConnection.getData() 설정 결과의 첫 페이지에서 데이터를 취할 for 루프와 postConnection을 통해 실행할 수 있습니다.

두 경우 모두 포스트 유형으로 작업하고 관심있는 필드에 액세스 할 수 있습니다. 다른 필드는 null입니다.

BTW 단일 호출에서 여러 ID를 사용하거나 이러한 ID를 차례로 요청하면 Facebook 호출에 아무런 차이가 없습니다. 내부적으로 계산되는 금액은 동일합니다. 귀하의 경우 2.

+0

또한 질문을 시작하는 데 필요한 올바른 구문을 설명하고 싶습니다. Facebook에서 여러 페이지의 게시물을 가져 오는 올바른 끝 점이 'graph.facebook.com/posts? ids = 178697151159,538560813021153'과 같습니다. RestFB에서 지원되지 않는다고 생각합니다. 끝점이없는 호출 만 작동합니다. 그러나 이것은 단지 추측이며이 호출을 깊이 검사하지 않았습니다. Github에서 중요한 문제인 경우 Github에서 문제를 열 ​​수 있습니다. – Norbert

+0

@Norbet 예, 한 페이지에서 작업했기 때문에 여러 페이지를 같은 방법으로 사용하려고했습니다 (바보입니다). 사실 내 관심사는 내가 모든 페이지 ID를 포함하여 전화를 한 번에 보내면 다르지만 내가 할 수있는 API 호출 수입니다. 차이가 없다면 루프를 사용할 수 있습니다. 감사. BTW 당신은 ​​API에 대한 호출 횟수를 줄이는 방법에 대한 아이디어가 있습니까? –

+0

사용 사례에 따라 다릅니다. 모든 게시물을 가져 오려면 페이지 당 한도이기 때문에 한도를 늘려야합니다.처음 5 개의 게시물 만 있으면 모든 것이 괜찮습니다. 이 상황에서 도움이되는 유일한 방법은 웹 훅 (webhook)입니다. 피드에서 새로운 것이 발생하자마자 페이지 피드를 구독하고 업데이트를받습니다. 예를 들어, 새 게시물이 작성된 경우. 따라서 새로운 것이 있다면 Facebook의 데이터 만 폴링하면됩니다. – Norbert