Messenger의 앱 및 봇에서 사용자와 연결

비즈니스에서 웹사이트, 모바일 앱, Messenger 등 여러 채널을 사용하여 고객과 교류하는 것이 일반적입니다. 사용자가 웹사이트나 모바일 앱에서 Facebook 로그인을 사용하는 경우 특정 Facebook 앱을 위한 앱 범위 ID라고 하는 ID가 생성됩니다. 사용자가 Messenger를 통해 비즈니스와 교류하는 경우 Messenger의 봇과 연결된 특정 페이지를 위한 페이지 범위 ID라고 하는 ID가 생성됩니다. 즉, 한 사용자에 대해 커뮤니케이션 채널마다 ID가 다릅니다. 앱 범위 ID는 사용자가 앱에 로그인할 때 생성되므로 앱을 설치하지 않고 로그인하지 않은 사용자의 앱 범위 ID는 표시되지 않습니다.

비즈니스에서 여러 채널의 사용자에게 하나의 완벽한 환경을 제공할 수도 있습니다. 예를 들어, 사용자가 Messenger의 봇을 통해 비즈니스와 교류하는 경우 비즈니스에서 사용자가 자사 Facebook 앱(예: Facebook 로그인을 사용하는 웹사이트 또는 모바일 앱)의 기존 고객이라는 것을 알면 더 맞춤 설정된 환경을 제공할 수 있습니다. Facebook은 Messenger에서 한 비즈니스 소유의 앱과 봇에 결쳐 같은 사용자의 ID를 가져올 수 있는 API를 제공합니다.

먼저 Messenger에서 봇과 연결된 앱과 페이지가 한 비즈니스의 소유임을 Facebook에 알려야 합니다. 이렇게 하려면 Facebook 비즈니스 관리자를 사용하여 다음 작업을 수행해야 합니다.

그런 다음 ID를 가져오기 위해 사용자 노드의 ids_for_apps 에지 또는 ids_for_pages 에지를 쿼리할 수 있습니다.

API를 처음 호출하면 앱 검수가 트리거될 수 있으며, 검수가 완료되는 데는 약 48시간이 걸립니다.

이 문서의 내용:

사용 사례

이 API에는 몇 가지 기본 사용 사례가 있습니다.

Messenger의 봇에 대한 사용자 ID가 주어진 경우 같은 비즈니스가 소유한 앱의 ID를 가져옵니다.

  • 사용자 노드: Messenger의 봇과 연결된 페이지로 범위가 지정된 ID입니다.
  • 에지:ids_for_apps
  • 요구 사항:페이지 액세스 토큰appsecret_proof가 필요하면 둘 다 페이지를 관리하는 앱을 사용하여 생성해야 합니다. 또한 페이지를 관리하는 앱 및 연결을 위한 기타 앱이 같은 비즈니스의 소유여야 합니다.

예:

  1. 한 비즈니스가 소유한 모든 앱의 ID를 반환합니다.
    GET /{user-id}/ids_for_apps
        ?access_token=[page_access_token]
        &appsecret_proof=[appsecret_proof]
  2. 앱 ID가 10152368852405295인 특정 앱의 ID를 반환합니다.
    GET /{user-id}/ids_for_apps
        ?app=10152368852405295
        &access_token=[page_access_token]
        &appsecret_proof=[appsecret_proof]

앱의 사용자 ID가 주어진 경우 같은 비즈니스가 소유한 Messenger 내 봇의 ID를 가져옵니다.

  • 사용자 노드: 앱으로 범위가 지정된 ID입니다.
  • 에지:ids_for_pages
  • 요구 사항:페이지 액세스 토큰appsecret_proof가 필요하며 둘 다 페이지를 관리하고 ID의 범위로 지정된 앱을 사용하여 생성해야 합니다. 또한 앱과 페이지가 같은 비즈니스의 소유여야 합니다.

예:

  1. 연결된 페이지를 한 비즈니스가 소유한 Messenger 내 모든 봇의 ID를 반환합니다.
    GET /{user-id}/ids_for_pages
        ?access_token=[app_access_token]
        &appsecret_proof=[appsecret_proof]
  2. 연결된 페이지의 페이지 ID가 380374449010653인 Messenger 내 특정 앱의 ID를 반환합니다.
    GET /{user-id}/ids_for_pages
        ?page=380374449010653
        &access_token=[app_access_token]
        &appsecret_proof=[appsecret_proof]

앱의 사용자 ID가 주어진 경우 같은 비즈니스가 소유한 다른 앱의 ID를 가져옵니다.

  • 사용자 노드: 사용자 노드는 앱으로 범위가 지정된 ID입니다.
  • 에지:ids_for_apps
  • 요구 사항: ID의 범위로 지정된 앱을 사용하여 생성되는 앱 액세스 토큰입니다. 또한 앱이 같은 비즈니스의 소유여야 합니다.

예:

  1. 한 비즈니스가 소유한 모든 앱의 ID를 반환합니다.
    GET /{user-id}/ids_for_apps
        ?access_token=[app_access_token]
  2. 앱 ID가 10152368852405295인 특정 앱의 ID를 반환합니다.
    GET /{user-id}/ids_for_apps
        ?app=10152368852405295
        &access_token=[app_access_token]

(봇과 연결된) 페이지의 사용자 ID가 주어진 경우 같은 비즈니스가 소유한 다른 페이지의 ID를 가져옵니다.

  • 사용자 노드: Messenger의 봇과 연결된 페이지로 범위가 지정된 ID입니다.
  • 에지:ids_for_pages
  • 요구 사항:페이지 액세스 토큰appsecret_proof가 필요하면 둘 다 페이지를 관리하는 앱을 사용하여 생성해야 합니다. 또한 페이지가 같은 비즈니스의 소유여야 합니다.

예:

  1. 한 비즈니스가 소유한 모든 페이지의 ID를 반환합니다.
    GET /{user-id}/ids_for_pages
        ?access_token=[page_access_token]
        &appsecret_proof=[appsecret_proof]
  2. 앱 ID가 380374449010653인 특정 페이지의 ID를 반환합니다.
    GET /{user-id}/ids_for_pages
        ?app=380374449010653
        &access_token=[page_access_token]
        &appsecret_proof=[appsecret_proof]

쿼리 예시

앱의 ID에서 연결된 ID를 가져옵니다.

GET /{user-id}
    ?fields=name,age_range,ids_for_apps,ids_for_pages
    &access_token=[app_access_token]

다음은 응답의 예시입니다.

{
  "name": "John Smith",
  "age_range": {
    "min": 21
  },
  "ids_for_apps": {
    "data": [
      {
        "id": "10152368852405295",
        "app": {
          "category": "Business",
          "link": "https://www.facebook.com/games/?app_id=1419232575008550",
          "name": "John's Game App",
          "id": "1419232575008550"
        }
      },
      {
        "id": "645195294",
        "app": {
          "link": "https://apps.facebook.com/johnsmovieappns/",
          "name": "JohnsMovieApp",
          "namespace": "johnsmovieappns",
          "id": "259773517400382"
        }
      }
    ],
    "paging": ...
  },
  "ids_for_pages": {
    "data": [
      {
        "id": "12345123", // The psid for the user for that page
        "page": {
          "category": "Musician",
          "link": "https://www.facebook.com/Johns-Next-Great-Thing-380374449010653/",
          "name": "John's Next Great Thing",
          "id": "380374449010653"
        }
      }
    ],
    "paging": ...
  },
  "id": "645195294"
}

Messenger 내 봇의 ID에서 연결된 ID를 가져옵니다.

GET /{user-id}
    ?fields=name,is_payment_enabled,ids_for_apps,ids_for_pages
    &access_token=[page_access_token]
    &appsecret_proof=[appsecrete_proof]

다음은 응답의 예시입니다.

{
  "name": "John Smith",
  "is_payment_enabled": true,
  "ids_for_apps": {
    "data": [
      {
        "id": "10152368852405295",
        "app": {
          "category": "Business",
          "link": "https://www.facebook.com/games/?app_id=1419232575008550",
          "name": "John's Game App",
          "id": "1419232575008550"
        }
      },
      {
        "id": "645195294",
        "app": {
          "link": "https://apps.facebook.com/johnsmovieappns/",
          "name": "JohnsMovieApp",
          "namespace": "johnsmovieappns",
          "id": "259773517400382"
        }
      }
    ],
    "paging": ...
  },
  "ids_for_pages": {
    "data": [
      {
        "id": "12345123", // The psid for the user for that page
        "page": {
          "category": "Musician",
          "link": "https://www.facebook.com/Johns-Next-Great-Thing-380374449010653/",
          "name": "John's Next Great Thing",
          "id": "380374449010653"
        }
      }
    ],
    "paging": ...
  },
  "id": "645195294"
}

    

정책

API는 비즈니스에서 해당 비즈니스의 앱 또는 페이지의 ID를 같은 비즈니스가 소유하거나 같은 비즈니스를 대신하여 관리되는 다른 앱 또는 페이지에 연결하기 위해서만 사용할 수 있습니다. 예를 들어 서비스 공급자는 여러 고객을 지원하기 위해 API를 사용할 수 없습니다.

이 정책을 위반하는지 확인하기 위해 API 요청은 검수를 받게 되며 '(#200) 비즈니스에서 이 API에 액세스할 수 있는지 현재 검수 중입니다"라는 오류 메시지가 반환됩니다.