계정 연결은 Messenger 플랫폼에서 제공하는 다른 웹 보기 기능과는 별개입니다. 이는 로그인 버튼을 통해서만 시작할 수 있으며, 봇의 고정 메뉴, URL 버튼, 이미 열려 있는 웹 보기 플로 또는 채팅 플러그인에서는 시작할 수 없습니다.
이러한 기능을 사용하는 개발자는 이제 Messenger 확장 기능에서 getContext()
함수를 사용하여 안전하게 사용자 ID를 가져올 수 있습니다. 그러면 봇이 해당 ID를 사용하여 사용자 계정에 연결하거나 경험을 맞춤화할 수 있습니다.
계정 연결은 현재 iOS와 Android Messenger 앱에서만 지원됩니다.
사용자가 비즈니스와 대화를 시작할 때 귀사와 거래한 적이 있는 고객인지 알고 싶을 수 있습니다. Facebook에서는 이를 돕기 위해 비즈니스 사용자 ID와 연결하거나 연결 해제하기 위한 보안 프로토콜을 만들었습니다.
계정 연결을 사용하면 인증 플로를 사용하여 로그인하도록 사용자를 초대하고, 로그인 후 Messenger 페이지 범위 ID(PSID)를 받을 수 있습니다. 그러면 사용자에게 더욱 안전하고 맞춤화된 관련 경험을 제공할 수 있습니다.
계정 연결 플로는 몇 가지 간단한 단계로 구성됩니다.
redirect_uri
와 account_linking_token
매개변수는 등록된 콜백에 첨부됩니다.redirect_uri
에서 제공한 위치로 사용자를 리디렉션하고, 개발자가 정의한 authorization_code
매개변수를 첨부하여 연결을 확인합니다.계정 연결 해제를 시작하는 방법은 다음과 같습니다.
사용자가 계정 연결을 트리거하면 계정 연결 URL이 Messenger 플랫폼에서 호출됩니다. redirect_uri
와 account_linking_token
매개변수가 URL 콜백에 첨부됩니다.
<yourAccountLinkingUrl> ?account_linking_token=ACCOUNT_LINKING_TOKEN &redirect_uri=CALLBACK_URL
계정이 연결되면 브라우저를 redirect_uri
매개변수에서 지정된 URL로 리디렉션하고 직접 정의한 authorization_code
매개변수를 첨부하여 플로를 완료해야 합니다. URL에 이미 매개변수가 포함되어 있을 수 있으므로 인증 코드를 적절히 첨부해야 합니다.
<redirect_uri> &authorization_code=AUTHORIZATION_CODE
계정을 연결하지 못한 경우 매개변수로 전달된 redirect_uri
로 브라우저를 리디렉션하되, authorization_code
는 첨부하지 마세요.
매개변수 이름 | 설명 |
---|---|
| Messenger에서 추가할 리디렉션 URI로, 인증 플로가 끝날 때 이 위치로 브라우저를 리디렉션해야 합니다. URL 인코딩 매개변수가 포함되어 있을 수 있습니다. |
| Messenger에서 전달한 단기 실행 토큰으로, 리디렉션 스키마에서 전달해야 합니다. 이 토큰은 5분간만 유효하고 암호화되어 있으며 사용자마다 고유합니다. |
| 개발자가 연결 성공 여부를 확인하기 위해 제공하는 코드입니다. Messenger 플랫폼은 사용자의 PSID와 함께 이 코드를 계정 연결 Webhooks 이벤트에 다시 전달합니다. 이 매개변수를 전달하지 못하면 연결 프로세스가 중단됩니다. |
성공적인 연결 플로는 계정 연결 이벤트를 트리거하여 사용자의 페이지 범위 ID(PSID)를 전달합니다.
계정 연결 콜백 이벤트에 등록해야 합니다. 이 Webhooks 이벤트를 확인하지 않으면 연결 프로세스가 중단됩니다.
경우에 따라 연결 플로 중에 사용자 페이지 범위 ID(PSID)를 검색해야 할 수도 있습니다. Facebook에서는 이 상황을 돕기 위해 PSID 검색 엔드포인트를 제공하여 사용자의 PSID가 지정된 유효하고 만료되지 않은 account_linking_token
을 가져올 수 있도록 합니다.
curl -X GET "https://graph.facebook.com/v2.6/me?access_token=PAGE_ACCESS_TOKEN \ &fields=recipient \ &account_linking_token=ACCOUNT_LINKING_TOKEN"
{ "id": "PAGE_ID", "recipient": "PSID" }
경우에 따라 백엔드에서 프로그래밍 방식으로 사용자 페이지 범위 ID(PSID)를 연결 해제해야 할 수도 있습니다. Facebook에서는 이 상황을 돕기 위해 PSID 연결 해제 엔드포인트를 제공하여 사용자 계정이 지정된 유효한 PSID를 연결 해제할 수 있도록 합니다.
curl -X POST -H "Content-Type: application/json" -d '{ "psid":"PSID" }' "https://graph.facebook.com/v2.6/me/unlink_accounts?access_token=PAGE_ACCESS_TOKEN"
{ "result": "unlink account success" }
Messenger 외부로 확장되는 사용자 계정 시스템이 있는 경우 계정 연결을 사용하세요.
사용자가 Messenger 내에서 계정을 만들어 다른 곳에서도 사용할 수 있도록 하세요.
컨텍스트상 관련이 있을 경우, 즉 봇 사용자가 로그인의 장점을 알 수 있을 때 로그인 요청 메시지를 표시하세요.
사용자가 로그인을 거절할 경우 봇이 어떻게 행동해야 하는지 생각해 보세요.
로그인 후 명확한 확인 및 친근한 환영 메시지를 제공하세요.
사용자가 오직 Messenger를 통해 개발자와 소통하는 경우 계정 연결을 사용하지 마세요. 스레드 ID를 통해 계정 정보를 저장할 수 있습니다.
되도록 바로 계정 연결을 요청하지 마세요. 사용자가 먼저 봇에 대해 알아보는 시간을 가질 수 있도록 하세요.