사용자 프로필 API

사용자 프로필 API를 사용하면 페이지 범위 ID(PSID)를 통해 Messenger와 상호작용하는 사람의 경험을 맞춤 설정하는 데 활용할 수 있는 사용자 프로필 정보를 가져올 수 있습니다.

가용성

사용자 프로필 정보를 가져오려면 비즈니스 자산 사용자 프로필 액세스 기능에 대한 Advanced Access 권한이 있어야 합니다. 일부 필드는 액세스하려면 추가 권한이 필요합니다.

PSID가 유효할 수 있지만 어떤 경우에는 사용자의 프로필 정보를 가져오는 데 사용하지 못할 수도 있습니다. 예를 들어 인스턴트 게임 페이지와 연결된 PSID는 사용자 프로필 API를 통해 액세스할 수 없습니다.

사용자 옵트인

다음 이벤트는 Messenger 봇이 사용자의 프로필 정보에 액세스하도록 승인합니다.

  • 사용자가 시작 화면을 통해 '시작하기' 버튼을 눌러서 대화를 시작합니다.
  • 사용자가 'Messenger로 보내기' 버튼을 클릭하여 대화를 시작합니다.
  • 사용자가 메시지를 보내서 대화를 시작합니다.
  • 사용자가 페이지의 메시지 요청을 수락하여 대화를 시작합니다.
  • Messenger 봇은 웹 보기에서 Messenger Extensions SDK의 askPermission() 함수를 사용하여 user_profile 권한을 요청합니다.
  • 비즈니스 앱의 경우, 비즈니스 자산 사용자 프로필 액세스 기능이 추가적으로 필요하고 앱 검수를 통해 신청할 수 있습니다.

일부 진입점에서는 앱에 사용자의 공개 프로필에 액세스할 권한을 부여하지 않고도 앱이 대화를 시작할 수 있습니다. 이러한 경우 사용자가 첫 메시지에 답장을 보낸 후 해당 사용자의 프로필에 액세스할 권한이 앱에 부여됩니다. 사용자가 앱과 대화를 시작하되, 프로필 권한은 부여하지 않을 만한 주요 상황은 다음과 같습니다.

프로필 사용 불가

현재 사용자 프로필 API는 전화번호를 사용하여 만든 Messenger 계정의 프로필 정보를 가져오는 기능을 지원하지 않습니다.

이 경우 API는 '이 사용자의 프로필을 사용할 수 없습니다' 메시지와 함께 오류 코드 2018218을 반환합니다.

사용 가능한 프로필 필드

필요한 기능과 권한에 대해 앱 검수 승인을 받은 앱은 이 정보를 공개하고 페이지를 옵트인한 사용자에 대해 다음 필드를 가져올 수 있습니다.

필드 이름설명권한

id

사용자의 PSID

N/A

name

사용자의 성명

N/A

first_name

이름

N/A

last_name

N/A

profile_pic

프로필 사진

N/A

locale

Facebook에서 사용하는 기본 언어

pages_user_locale

timezone

시간대(GMT를 기준으로 한 숫자)

pages_user_timezone

gender

성별

pages_user_gender

페이지의 사용자 필드에 대한 기능 액세스 권한 요청

  1. 페이지 설정 > 고급 메시지로 이동합니다.
  2. '사용자 정보'에서 필드를 선택하고 '요청' 버튼을 클릭합니다.

사용자의 프로필 가져오기

사용자 프로필 API를 사용하려면 해당 사용자에게 원하는 프로필 필드를 포함하여 GET 요청을 보내세요.

curl -X GET "https://graph.facebook.com/<PSID>?fields=first_name,last_name,profile_pic&access_token=<PAGE_ACCESS_TOKEN>"

앱이 사용자의 프로필에 액세스할 수 있는 경우 사용자 프로필 API는 사용자 프로필에서 요청된 필드와 함께 JSON 문자열을 반환합니다.

{
  "first_name": "Peter",
  "last_name": "Chang",
  "profile_pic": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xpf1/v/t1.0-1/p200x200/13055603_10105219398495383_8237637584159975445_n.jpg?oh=1d241d4b6d4dac50eaf9bb73288ea192&oe=57AF5C03&__gda__=1470213755_ab17c8c8e3a0a447fed3f272fa2179ce",
  "locale": "en_US",
  "timezone": -7,
  "gender": "male",
  "last_ad_referral": {
    "source": "ADS",
    "type": "OPEN_THREAD",
    "ad_id": "6045246247433"
  }
}

앱이 이 사용자의 프로필에 액세스할 수 없는 경우 빈 개체가 반환됩니다.