Facebook 실시간 업데이트 API를 활용하는 단계

소개



Graph API라고 데이터를 취득하는 경우, 요구를 던질 필요가 있으므로 데이터량이 늘어나면 API 리밋트가 신경이 쓰입니다. 거기서 「Facebook측에서 변경이 있으면 변경을 통지해 준다」구조가 필요합니다.

Facebook에서는 이것을 실현하기 위해 "Receiving API Updates in Real-Time"이라는 메커니즘이 있습니다.
Receiving API Updates in Real-Time htps : //에서 ゔぇぺぺrs. 후세보오 k. 이 m / cs / g 등 ph-Ap / Rea l - 치메 - p s / v2.3

이번에는 Facebook 페이지의 데이터를 실시간으로 취득하기 위한 순서를 정리했습니다.

1. 개발용 Facebook 앱 만들기



사전에 개발용 Facebook 앱이 필요하므로 작성해 둡니다. 이 기사를 이해하기 쉽습니다.
facebook의 앱 ID를 만드는 방법 | ht tp // // mp ぇ rks. jp/bぉg/후세보호 k/7373

2. Facebook 페이지에 1에서 만든 앱을 실시간 업데이트용으로 추가



그런 다음 대상 Facebook 페이지에 실시간 업데이트를 받는 앱을 추가해야 합니다.
  • 추가할 엔드포인트는 이전에는 {page_id}/tabs 이었지만 version2.2 이상에서는 {page_id}/subscribed_apps 입니다.
  • {page_id}/subscribed_apps 에 POST하면 추가됩니다.
  • 결과를 확인할 때는 {page_id}/subscribed_apps 에 GET 요청하면 실시간 업데이트를 받고 있는 앱 목록이 아래와 같이 표시됩니다. (실시간 업데이트를 사용하는 다른 앱도 표시 될 수 있음)


  • 등록하려면 publish_pages 권한을 취득한 대상의 Facebook 페이지의 페이지 액세스 토큰이 필요하므로, 별도 유저가 로그인하면 페이지 액세스 토큰을 취득하는 구현이 필요하게 됩니다.

  • 3. 수신용 콜백 URL 준비



    다음으로 Facebook에서 업데이트를 받는 콜백 URL을 준비합니다.
  • Facebook에서 액세스 할 수 있어야하므로 물론 로컬 환경의 URL은 불가능합니다
  • 이번에는 https://test.developer.jp/realtimeupdate/라는 가상의 URL을 설정한다.

  • 4. 실시간 업데이트로 획득할 데이터(Subscribe) 설정



    다음에 실제로 실시간 업데이트로 취득하는 데이터(Subscribe)의 내용을 설정합니다.
  • 이 설정에는 1에서 만든 앱 ID와 앱 토큰이 필요합니다
  • 앱 토큰은 Facebook에서 제공하는 다음 사이트에서 확인합니다.
    액세스 토큰 도구
    htps : //에서 ゔぇぺぺrs. 후세보오 k. 코 m / 토오 ls / 아세트 s 토켄 /
  • {アプリID}/subscriptions
    
  • 위의 엔드 포인트에 다음 매개 변수를 지정하여 POST합니다.
    object: page
    callback_url: https://test.developer.jp/realtimeupdate/
    fields: feed
    verify_token: 任意の文字列
    
  • 이번에는 페이지의 feed (타임 라인 게시) 만 취득 대상으로했지만, 그 밖에도 사용자의 데이터를 취득하는 것도 가능
  • 자세한 것은 공식 사이트에 기재되어 있으므로 흥미있는 분은 꼭
    Receiving API Updates in Real-Time htps : //에서 ゔぇぺぺrs. 후세보오 k. 이 m/do cs/g 등 ph-ap/rea l-chime-p s/v2.3

  • 5. Subscribe 인증


  • 4에서 Subscribe를 추가/변경하면 지정된 콜백에 Facebook에서 다음 인증을위한 문자열이 GET 요청으로 전달됩니다.
    hub.mode -> 'subscribe'
    hub.challenge -> ランダム文字列
    hub.verify_token -> 4の手順時に自分で設定したトークン値
    
  • 인증을 위해 다음을 수행합니다.
  • hub.verify_token이 자신이 설정 한 토큰과 같습니까?
  • 같으면 hub.challenge의 값을 그대로 응답으로 반환합니다.

  • : PHPの場合
    if ($_GET['verify_token'] == 設定したトークン) {
      echo $_GET['hub_challenge'];
      return
    } 
    

    이것으로 Facebook측에 수신 서버가 인증되어 이후 업데이트를 수신할 수 있다. 덧붙여서 업데이트는 POST로 전송되어 오므로 POST 요청을 수신할 수 있도록 해 둘 필요가 있습니다.

    반대로 Subscribe를 해제하는 경우는 {アプリID}/subscriptions 에 DELETE요청하면 OK

    좋은 웹페이지 즐겨찾기