앱과 페이지에서 사용자 매핑하기

앱의 테스트, 개발, 준비 또는 QA 버전에서 동일한 범위 사용자 ID를 공유하고 싶다면 테스트 앱을 사용하세요.

Facebook에서는 앱 인스턴스에 처음 로그인하는 사용자와 제한된 로그인으로 로그인한 사용자에게 앱 범위 사용자 ID를 발급합니다. Messenger 봇을 처음 사용하는 사용자에게는 페이지 범위 사용자 ID를 발급합니다. 기본적으로 같은 사람의 ID가 앱과 봇에서 달라질 수 있음을 의미합니다.

비즈니스는 여러 Facebook 앱이나 봇을 운영할 수 있습니다. 예를 들어 이는 교차 프로모션이나 부정행위 탐지 등의 사용 사례를 지원하려는 게임 스튜디오나 사용자와의 커뮤니케이션에 사용하는 봇에서 일반적입니다. 이러한 경우 해당 앱과 봇 사이에 동일한 사람의 ID를 매핑해야 할 수도 있습니다.

여러 앱에서 동일한 사용자를 매핑하는 방법은 세 가지가 있습니다.

이러한 메커니즘을 사용하기 전에 앱들을 동일한 비즈니스에서 소유하고 운영한다는 것을 Facebook에 알려야 합니다. 이렇게 하려면 Facebook 비즈니스 관리자를 사용하여 다음 작업을 수행해야 합니다.

사용자 노드의 token_for_business 필드

앱이 비즈니스 관리자와 연결되면 제한적 로그인이나 앱 인스턴스에 처음 로그인할 때 받은 앱 범위 ID를 사용하여 User 노드에서 token_for_business 필드를 요청할 수 있습니다. 이 호출에서 문자열이 반환되는데, 이는 동일한 비즈니스 관리자에서 관리하는 모든 앱에서 해당 인물에 대해 동일합니다.

GET /me?fields=token_for_business

응답:

{
  "id": "1234567890"
  "token_for_business": "weg23ro87gfewblwjef"
}

사용 참고:

  • 쿼리되는 대상인 사람이 이 앱에 로그인한 적이 있어야 합니다.
  • 이 필드는 앱 액세스 토큰 또는 사용자 액세스 토큰으로 호출할 수 있습니다. 사용자 토큰을 사용할 경우 쿼리되는 대상과 토큰이 생성되는 대상이 동일한 사람이어야 합니다.
  • 제한적 로그인에서 받은 앱 범위 ID를 사용할 경우, 앱의 앱 ID를 사용하여 호출을 보내야 합니다. 그래프 API 호출에 유효한 사용자 토큰이 없기 때문입니다. 이 컨텍스트에서는 제한적 로그인의 보안 조치가 지원되지 않습니다.
  • 소유하는 비즈니스가 변경되면 token_for_business의 값도 변경됩니다.
  • token_for_business 필드를 요청했는데 앱이 비즈니스 관리자와 연결되어 있지 않다면 호출에 오류를 반환합니다.
  • token_for_business에서 반환된 값은 ID가 아니라 토큰입니다. 그래프 API에서 사용자 정보에 액세스하는 데 직접 사용할 수 없습니다. 데이터베이스에 ID를 저장한 다음, 그래프 API를 호출해 해당 사용자의 정보를 받아야 합니다.

편의를 위해 token_for_business 필드는 모든 API 버전에서 제공됩니다.

캔버스 개체 signed_requesttoken_for_business 속성

캔버스를 사용하는 앱의 경우 여러 앱에서 사용자를 간편하게 매핑할 수 있도록 하기 위해, 앱이 비즈니스 관리자와 연결되어 있고 사용자가 앱에 로그인한 적이 있으면 업로드 시 캔버스 앱에 전달된 signed_request를 통해 token_for_business 필드를 추가, 전달합니다. 예를 들면 다음과 같습니다.

{
  "algorithm": "HMAC-SHA256",
  "expires": 1414263600,
  "issued_at": 1414257389,
  "oauth_token": "CAAGEkq9GMZAkBAFnvvQ3M6msZBKITLa1gVZBVdnLTdJue2QeV6fMKRXn4G6fcEZB5ZAJyg3z6HdaKOJCCMJ1l9YFWmN4hq6nNnx77f9O7SYhsnPcJ6iH79xjFwqhrALgieDp7GiziMy5Y3Mol6RzHvCM5ceqQe9ZAijvrWZB5hEIwphbMQKEwZA4ZBozXP3NJgEZA3nZCMTTtvleWpxfmqIqO5XwxneCZBsZC4",
  "token_for_business": "AbwoGqummPbF3zp_",
  "user_id": "10154418713995634"
}

User 노드에 직접 쿼리하면(예: /me?fields=token_for_business를 통해) token_for_business 필드의 값이 동일해집니다. 또한 소유하는 비즈니스가 변경되면 token_for_business의 값도 변경되는 규칙이 동일하게 적용됩니다.

앱이 비즈니스 관리자와 연결되어 있지 않거나 사용자가 앱에 로그인하지 않았다면 token_for_business 속성은 signed_request 개체에 존재하지 않습니다.

사용자 노드의 ids_for_business 에지

User 노드에서 ids_for_business 에지를 호출하여 매핑된 비즈니스 ID를 가져옵니다. 응답은 개체의 배열이며, 각각 호출을 보내는 앱과 동일한 비즈니스에 연결된 앱을 나타냅니다. 이 앱은 해당 사용자가 로그인한 적이 있어야 합니다.

GET /me/ids_for_business

응답 예시:

{
  "data": [
    {
      "id": "10153949089790582", 
      "app": {
        "name": "Business's App 1", 
        "namespace": "business_app_1", 
        "id": "647733625268125"
      }
    }, 
    {
      "id": "605665581", 
      "app": {
        "name": "Business's App 2", 
        "namespace": "business_app_2", 
        "id": "370612223054807"
      }
    }, 
    {
      "id": "10154053730190582", 
      "app": {
        "name": "Business's App 3", 
        "namespace": "business_app_3", 
        "id": "194890427204075"
      }
    }
  ]
}

API에서 반환할 데이터의 경우 사용자가 API 호출을 보내는 앱과 동일한 비즈니스에 연결된 하나 이상의 앱에 로그인한 적이 있어야 합니다. 예: 어떤 사람이 동일한 비즈니스와 연결된 앱 5개 중에 3개에 로그인한 적이 있다면 API는 3개의 개체를 반환합니다.

FAQ

비즈니스 매핑 API가 필요하나요?

아니요. 비즈니스 매핑 API는 여러 Facebook 앱을 운영하고 그 앱들에서 동일한 사용자 ID를 매핑해야 하는 비즈니스에만 유용합니다. 기본 앱이 1개라면 비즈니스 매핑 API를 사용해야 할 가능성이 적으므로 비즈니스를 설정하거나 비즈니스와 앱을 연결할 필요가 없습니다.

비즈니스 관리자는 무엇인가요?

비즈니스 관리자는 비즈니스 및 에이전시가 Facebook 페이지, 광고 계정, 앱, 결제 방법을 한 곳에서 간편하게 관리할 수 있는 도구입니다. 비즈니스 관리자에 대해 자세히 알아보세요.

비즈니스 매핑 API를 사용할 필요가 없을 것 같은데 그래도 비즈니스와 앱을 연결해야 하나요?

비즈니스 매핑 API를 사용할 필요가 없다면 아직은 비즈니스를 설정하지 않는 것이 좋습니다. 비즈니스와 기본 Facebook 페이지를 연결해야 할 경우 평소에 회사의 Facebook 광고 계정과 페이지 권한을 관리하는 사람이 Facebook에서 비즈니스를 설정하는 것이 가장 좋습니다. 비즈니스 관리자에 이미 비즈니스가 설정되어 있다면 해당 비즈니스와 앱을 언제든지 연결할 수 있습니다.

앱과 여러 비즈니스를 연결할 수 있나요?

아니요. 앱은 한 번에 하나의 비즈니스와만 연결할 수 있습니다.

앱을 다른 비즈니스에 이전할 수 있나요?

예. 먼저 현재 연결되어 있는 비즈니스에서 앱을 삭제합니다. 비즈니스 관리자에서도 앱을 삭제할 수 있습니다. 비즈니스 설정에 있는 앱 탭으로 이동해서 앱을 선택하고 "삭제"를 클릭하면 됩니다. 그런 다음 새 비즈니스와 앱을 연결할 수 있습니다.