FAQ

이 문서에서는 자주 묻는 질문에 대한 답변을 제공합니다.

일반

Facebook 로그인 을 사용하고 특정 페이지에 pages_messaging 권한을 부여하여 앱 웹사이트에서 앱이 설치됩니다. 승인된 앱은 고급 메시지 기능페이지 설정에 표시됩니다.

예, Facebook 앱은 여러 페이지를 받아볼 수 있습니다. permission pages_messaging과 같이 앱 검수에 들어가면 앱이 2개 이상의 페이지에서 Webhooks를 수신하도록 받아볼 수 있습니다. 페이로드에 기초하여 각 Webhook의 컨텍스트를 알아보는 것은 사용자가 해야 합니다.

예, 둘 이상의 앱이 한 페이지를 구독할 수 있습니다. 여러 앱이 동일한 대화를 처리하는 경우 핸드오버 프로토콜 을 사용하여 특정 시점에 어떤 봇이 스레드를 소유하는지를 처리하는 것이 가장 좋습니다.

진입점

"Messenger로 보내기" 플러그인을 사용하는 경우 data-ref 매개변수를 클릭의 컨텍스트와 관련된 정보를 통해 보낼 패스스루 매개변수로 사용할 수 있습니다.

사람들은 Messenger의 검색을 통해 페이지를 찾을 수도 있습니다. 이러한 경우에는 패스스루 매개변수가 없습니다. 계정 연결 기능을 사용하여 대화를 사이트의 사용자 계정에 연결할 수 있습니다.

앱이 개발 모드에 있으면 앱의 관리자, 개발자 및 테스터만 플러그인을 볼 수 있습니다. 앱이 검수되고 승인된 후 앱 대시보드의 앱 검수 탭에서 앱을 공개할 수 있습니다.

일회성 알림 API

No. Unlike subscriptions where a business can send multiple messages to people on a recurring basis, the one-time notification API limits the business to a single message per user request. If the person engages with the message, the standard messaging window will reopen.

Yes. Pages interested in using the One-time Notification API need to apply for permission. Go to the Advanced Messaging section of your Page Settings and consent to the terms. A Page will be granted permission if the Page meets our criteria.

Common uses of the API include various promotional and non-promotional use cases where the User explicitly requested a follow-up. Examples include:

  • Back in stock alerts
  • Collection launches
  • Concert tickets going on sale
  • Price drop alerts
  • Train tickets available for purchase
  • CSAT surveys

Your Page is not allowed to send a notification on a topic for which the User has not agreed to receive a notification. Please see the Usage and Restrictions and Limitations sections of the One-time Notification guide for more information.

A Page can send multiple requests however, the 24-hour policy will be applied to all the requests being sent. We also have controls in place to prevent spamming users with multiple requests.

The 24 hour standard messaging window will open only if the user interacts with the opt-in message. The behavior is consistent with interactions with other elements in the Messenger experience.

Once a person asks to be notified, the Page will receive a token which is equivalent to a permission to send a single message to the person. The token can be used to send a message to the person outside the 24 hour window. The token can only be used once and unused tokens will expire within 1 year of creation.

Yes. However, while it is possible to send another notification request using an existing token, there is no clear benefit for the business to send these type of requests.

No. The API does not return tokens available to a Page.

No. The app does not need to specify any message tags when sending a message outside the 24-hour standard messaging window using this API.

Send/Receive API

이 오류가 발생하는 데는 다음과 같이 몇 가지 이유가 있습니다.

  • Facebook 로그인의 ID를 사용하고 있습니다. Facebook 로그인의 사용자 ID는 보내기/받기 API와 함께 사용하기 위한 것이 아닙니다. Messenger 플랫폼의 인증을 통해 얻은 사용자 ID만 Messenger 플랫폼에 사용할 수 있습니다.
  • ID를 잘못된 페이지 액세스 토큰과 함께 사용하고 있습니다. Messenger 플랫폼을 위한 사용자 ID는 한 페이지로 범위가 지정되는 페이지별 ID입니다. 유효한 사용자 ID를 사용하지만 페이지 액세스 토큰이 다른 페이지와 연결된 경우 호출이 작동하지 않습니다. 같은 페이지와 연결된 사용자 ID와 페이지 액세스 토큰을 사용하세요.
  • 최근에 인증되지 않은 전화번호로 메시지를 보내고 있습니다. 보내기 API를 전화번호와 함께 사용하는 경우 전화번호가 최근에 인증된 경우에만 메시지를 보냅니다. 전화번호가 인증된 것으로 표시되더라도 최근에 인증되지 않은 경우 메시지를 보내지 않습니다. 전화번호를 다시 인증하고 24시간 후에 다시 시도해보세요.

다음은 플랫폼 테스트 사용자를 Messenger 플랫폼 통합에 사용하는 방법입니다.

  1. 앱의 역할 페이지에서 추가 버튼을 클릭하여 새 테스트 사용자를 만듭니다.
  2. 이 앱의 테스트 사용자를 승인하시겠어요? 옵션을 토글하고 "manage_pages""page_messaging" 권한을 부여합니다.
  3. 수정 버튼을 사용하여 이 사용자를 위한 액세스 토큰을 받습니다(v2.6 사용). 나중을 위해 저장하세요.
  4. 수정 버튼을 사용하여 테스트 사용자로 로그인합니다.
  5. 로그인한 후 테스트 사용자로 페이지를 만듭니다.
  6. 테스트 사용자의 사용자 액세스 토큰을 사용하여 이 사용자의 페이지 액세스 토큰을 받습니다. 다음 호출을 통해 액세스 토큰을 받을 수 있습니다.
    https://graph.facebook.com/v2.6/me/accounts?access_token=[TEST_USER_ACCESS_TOKEN]
    (문서)
  7. 이 페이지 액세스 토큰을 사용하여 Facebook 앱을 페이지와 연결합니다.
    https://graph.facebook.com/v2.6/me/subscribed_apps?method=POST&access_token=[TEST_USER_PAGE_ACCESS_TOKEN]
            
    (문서)
  8. 이 단계를 실행한 후 테스트 페이지의 RTU 업데이트를 받게 되며 테스트 페이지에서 테스트 사용자에게 메시지를 보낼 수 있습니다. 그 밖에 테스트 사용자의 액세스 토큰이 너무 빨리 만료되는 경우 액세스 토큰을 장기 실행 토큰으로 바꿀 수 있습니다. 여기에서 문서의 안내를 따르세요.
    GET /oauth/access_token?  
        grant_type=fb_exchange_token&           
        client_id={app-id}&
        client_secret={app-secret}&
        fb_exchange_token={short-lived-token} 
            

예. 봇에 두 유형의 메시지를 모두 포함할 수 있습니다. 사용자가 적절한 트리거 중 하나를 통해 표준 플랫폼 메시지를 트리거하고 받아보기 메시지 수신을 허용하도록 선택해야 합니다.

봇은 기술적으로 24시간이 지난 후에는 사용자에게 두 번 이상 메시지를 보낼 수 없습니다(메시지가 전송되지 않습니다). 기존 봇의 경우 전환 기간에는 이러한 메시지가 전송될 수 있지만 발견되면 플래그가 지정됩니다.

아니요. Messenger 플랫폼은 봇에서 메시지를 받기로 선택한 모든 사람의 PSID 리스트를 반환하는 API를 제공하지 않습니다.

Webhooks

콜백은 2단계로 수신됩니다. 첫째, webhook이 제대로 설정되어 있는지 확인합니다(https://developers.facebook.com/docs/messenger-platform/webhook-reference#setup). Webhook이 제대로 설정된 경우 표시자가 표시됩니다.

둘째, 각 페이지를 받아봐야 합니다. 받아보는 모든 페이지가 나열됩니다.

Webhook 호출이 장기간 실패하면 앱에서 받아보기가 취소되며 webhook을 다시 추가하고 페이지를 다시 받아봐야 합니다.

Webhook 호출에는 X-Hub-Signature라는 이름의 필드가 헤더에 포함되며 이 필드는 Facebook에서 webhook이 호출되었는지 확인하기 위해 사용할 수 있습니다.

Webhook에서 상태 코드 200을 사용하여 응답하도록 하세요. 이렇게 하면 webhook이 수신되었다는 것을 Facebook에서 알 수 있습니다. 200을 반환하지 않으면 완료될 때까지 호출을 재시도합니다. Webhook에서 장기간 200을 반환하지 않는 경우에는 개발자 알림을 표시합니다.

또한 성공 상태 코드가 적시에 반환되는지 확인하세요. Webhook은 20초 후에 시간 초과됩니다. Webhook이 비동기식으로 처리되어 성공 상태 코드가 즉시 반환되고 별도로 처리되도록 코드를 구성하세요.

최근의 Webhook 오류를 보여주는 도구가 있습니다. Webhook가 전달되지 않으면 Facebook 서버가 URL 받아보기를 취소합니다. 도구를 찾으려면 앱 대시보드 > Messenger > 설정으로 이동하여 Webhook 카드 내의 최근 오류 보기 버튼을 확인하세요.

기타 참고 자료