2015-02-05 3 views
2

이것은 첫 번째 질문은 stackoverflow에, 그래서 뭔가 잘못 알려주십시오 .. 글쎄, 문제는 페이 스북 실시간 업데이트입니다 : 페이지에 대한 구독을 성공적으로 만들었고 관리자 사용자 및 테스트 애플 리케이션을 만들었습니다), 사용자가 manage_page, read_stream, read_friendlist, read_insights, publish_actions 및 많은 사용자의 데이터 (약, 이메일 등)에 대한 사용 권한에 동의했습니다 내가 에지/구독으로 그래프 API에 GET 쿼리를하면 결과가 나타납니다.페이 스북 (Facebook) 실시간 페이지 업데이트 PHP

{ 
    "data": [ 
    { 
     "object": "user", 
     "callback_url": "LIVE_CALLBACK_URL", 
     "fields": [ 
     "feed" 
     ], 
     "active": true 
    }, 
    { 
     "object": "page", 
     "callback_url": "LIVE_CALLBACK_URL", 
     "fields": [ 
     "built", 
     "description", 
     "email", 
     "feed", 
     "location", 
     "name", 
     "personal_info", 
     "written_by" 
     ], 
     "active": true 
    } 
    ] 
} 

그래서, 내가 페이스 북에서 나에게 어떤 업데이트를 보내지 않는지 검색했다. efile.txt) 그래서 당신은 내 API에 대한 페이지 탭을 만들려면/탭과 함께 그래프 API를 쿼리해야 알게되었습니다. 내가 "성공"을 반환했음을 쿼리 할 때 (그것이 어디에 저장되어 있는지 알 수는 없지만 ...). 그런 다음 내 프로필, 테스트 및 페이지에서 Facebook에 업데이트가 있는지 확인하고 갑자기 내 사용자 프로필 게시글 (타임 라인에 공유 됨)에 대한 의견을 한 건 보내 게됩니다. 응답했다 :

14:17 05.02.2015 
Array 
(
    [object] => user 
    [entry] => Array 
     (
      [0] => Array 
       (
        [uid] => ****my_fb_id**** 
        [id] => ****my_fb_id - not_someone_else**** 
        [time] => 1423146339 
        [changed_fields] => Array 
         (
          [0] => feed 
         ) 

       ) 

     ) 

) 

그래서 페이스 북 전송

가 빈 피드, 그리고 그것은, 아마 권한 또는 뭔가 다른 확인, 그러나 그 후 나는이 사용자 프로필 및 테스트 페이지 (게시물 및 PPL이에 댓글을 만들었다)하지만 페이스 북은 내 웹 페이지에 대한 업데이트 나 전화를 보내지 않았습니다. 그래서 과거에이 문제에 직면 해있는 사람이 있었고 어떻게 해결 했습니까? 페이스 북에서 업데이트를받는 것입니다 부분은 다음과 같습니다

$method = $_SERVER['REQUEST_METHOD']; 
    if(isset($_GET['hub_mode']) && isset($_GET['hub_verify_token'])){ 
      if (trim($method) == 'GET' && trim($_GET['hub_mode']) == 'subscribe' && trim($_GET['hub_verify_token']) == VERIFY_TOKEN) { 
      print $_GET['hub_challenge']; 
      } 
     } 
     else if ($method == 'POST') {  
     $updates = json_decode(file_get_contents("php://input"), true); 
      $file = 'log.txt'; 
      $current = file_get_contents($file); 
      @$results = print_r($updates,true); 
      $current .= $results; 
      file_put_contents($file, $current);        
    } 

나는 세부 사항에 많은 내가 ... 검색 수 등을 내 문제를 시도했지만 그것이 작동하지 않는 이유를 정말 이해가되지 않습니다. 변화가 발생 페이스 북이 당신에게를 변경된 데이터를 전송하지 않습니다,하지만 객체 (그리고 필드/가장자리의) : 그렇다 @CBroe가 설명 된대로 오래된 방법을 사용하여에서

+0

페이지 탭 앱이 필요하지 않습니다. – WizKid

+0

웹 페이지에 대한 업데이트를 보내지 않았다면 (여기 [link] (http://stackoverflow.com/questions/21189046/subscribe-to-facebook-page-feed-real-time-updates)를 보았다)) 그것이 페이지 탭을 추가 한 이유이며, 한 번만 작동했습니다 ... –

+0

페이지에 대한 실시간 업데이트를 구독하는 방법은 구형입니다. https://developers.facebook.com/docs/graph-api/real-time-updates/v2.2 – CBroe

답변

0

, 난 당신이 오해가 있다고 생각 사용자 개체 변경.

페이지의 경우 변경 사항 자체를받을 수 있습니다 (대 FB 요청의 changes 필드).

는 가입이 성공적으로 생성되면, 페이스 북은 콜백 URL로이 선택한 분야에 대한 변경 사항 (또는 때마다 HTTP POST 요청을 할 것입니다

보기 가장자리).

즉, Facebook에서 가져온 정보 개체와는 별도로 요청해야합니다. 귀하의 예에서 귀하의 사용자 피드에 대한 요청 일 것입니다.

GET /{user_id}/feed 

최근 변경 사항을 쿼리하십시오.

+0

구독을 구축하는 새로운 방법은 무엇입니까? 일부 프레임 워크를 통해? 해명 해 주셔서 감사합니다. 그런 종류의 업데이트가 Facebook에서 예상 될 것이라고 생각하지 않았습니다.이 경우 한 번만 작동했습니다. 페이지에 업데이트가 제공되지 않는 이유는 무엇입니까? –

+0

https://developers.facebook.com/docs/graph-api/reference/v2.2/app/subscriptions#publish – Tobi

+0

에서 볼 수 있습니다. 그래서 구독 할 때마다 새 구독을 만들어야합니까? 수신에 대한 부분은 정상적으로 작동하는지 테스트하는 것입니다. 나는 fb에서 업데이트를 얻었고 가장자리에있는 그래프를 쿼리 한 다음 해당 쿼리를 처리 한 다음 구독을 다시 작성합니까? –

관련 문제