시작하기

이 문서에서는 앱으로 Instagram을 지원하는 Messenger API(개발자 정책에서는 Instagram 메시지 API라고도 알려짐)를 성공적으로 호출하고 Instagram 프로페셔널 계정 메시지를 수신하는 방법을 설명합니다. 이 문서는 그래프 APIFacebook 로그인에 익숙한 독자를 대상으로 합니다.

시작하기 전에

다음 항목에 액세스할 수 있어야 합니다.

  • 해당 계정에 연결된 Facebook 페이지
  • 해당 페이지에서 MODERATE 작업을 수행할 수 있는 Meta 개발자 계정
  • Facebook 로그인 사용 사례를 사용하고 기본 설정을 구성하여 생성한 Meta 앱

Messenger 플랫폼을 처음 사용하는 개발자

  • 페이지 액세스 토큰을 생성하고 Webhooks를 설정하는 방법에 대한 자세한 단계별 가이드는 아래를 참조하세요.
  • 다양한 플랫폼 기능에 대해 알아보고 필요에 맞는 기능을 적용하세요.

Messenger 플랫폼을 사용한 경험이 있는 개발자

  • 액세스 토큰과 Webhook의 개념은 비슷합니다. Instagram을 지원하는 Messenger API는 페이지 액세스 토큰에 instagram_manage_messages가 필요하고 Instagram 주제 Webhooks를 구독해야 합니다.
  • 대부분 기능은 Messenger API와 유사합니다. 기능 리스트에서 자세한 내용을 검토하고 필요에 맞는 기능을 적용하세요.

로그인 플로

Facebook 로그인 또는 Instagram용 비즈니스 로그인을 사용하여 앱 사용자에게 필요한 권한을 요청할 수 있습니다.

Instagram용 비즈니스 로그인 플로를 사용하면 사용자가 로그인 플로 중에 다음 작업을 완료할 수 있습니다.

  • Instagram 계정을 Instagram 프로페셔널 계정으로 전환합니다.
  • 비즈니스를 위한 Facebook 페이지를 만듭니다.
  • 페이지를 Instagram 프로페셔널 계정에 연결합니다.

Instagram용 비즈니스 로그인을 구현하려면 Instagram용 비즈니스 로그인 가이드 를 방문한 다음 이 가이드로 돌아옵니다.

1. 사용자 액세스 토큰 받기

Facebook 개발자 계정에 로그인한 다음, 앱에 액세스하여 Facebook 로그인 모달을 트리거합니다. Facebook 개발자 계정은 쿼리하고자 하는 Instagram 계정과 연결된 Facebook 페이지에서 'Moderate' 레벨 이상의 액세스 권한으로 작업을 수행할 수 있어야 한다는 것을 기억하세요.

모달을 트리거하고 나면 확인을 클릭하여 앱에 instagram_basic, instagram_manage_messagespages_manage_metadata 권한을 부여합니다.

그러면 API가 사용자 액세스 토큰을 반환할 것입니다. 앱이 다음의 몇 가지 쿼리에서 사용할 수 있도록 토큰을 캡처합니다. 그래프 API 탐색기를 사용하고 있는 경우 토큰이 자동으로 캡처되고, 참조할 수 있도록 액세스 토큰 필드에 표시됩니다.

2. 사용자 페이지 가져오기

GET /me/accounts 엔드포인트를 쿼리합니다(GET /{user-id}/accounts로 변환되고 액세스 토큰에 따라 Facebook 사용자 노드에 대해 GET을 실행합니다).

curl -i -X GET \
 "https://graph.facebook.com/v9.0/me/accounts?access_token={access-token}"

그러면 현재 Facebook 사용자가 다음과 같이 MANAGE, CREATE_CONTENT, MODERATE 또는 ADVERTISE 작업을 실행할 수 있는 Facebook 페이지 컬렉션이 반환됩니다.

{
  "data": [
    {
      "access_token": "EAAJjmJ...",
      "category": "App Page",
      "category_list": [
        {
          "id": "2301",
          "name": "App Page"
        }
      ],
      "name": "Metricsaurus",
      "id": "134895793791914",  // capture the Page ID
      "tasks": [
        "ANALYZE",
        "ADVERTISE",
        "MODERATE",
        "CREATE_CONTENT",
        "MANAGE"
      ]
    }
  ]
}

쿼리하고자 하는 Instagram 계정과 연결된 Facebook 페이지의 ID를 캡처합니다. 앱 사용자가 여러 페이지에서 작업을 수행할 수 있으므로 최종적으로는 캡처할 올바른 페이지 ID를 결정할 수 있는 로직을 도입해야 합니다(또는 앱 사용자가 본인 대신 올바른 페이지인지 식별할 수 있는 UI를 구상해야 합니다).

3. 페이지 액세스 토큰 가져오기

다양한 Instagram 메시지 API 호출을 수행하려면 이전에 FB 로그인 플로에서 부여된 해당 Instagram 프로페셔널 계정의 연결된 페이지 액세스 토큰(PAT)을 사용해야 합니다.

사용자 액세스 토큰을 사용하여 /{page-id} 엔드포인트에 GET 요청을 보냅니다. 예를 들면 다음과 같습니다.

curl -i -X GET "https://graph.facebook.com/{page-id}?
  fields=access_token&
  access_token={user-access-token}"  

성공할 경우 앱에서 다음과 같은 응답을 받습니다.

{
  "access_token":"{page-access-token}",
  "id":"{page-id}"              
}  
  • 단기 실행 사용자 액세스 토큰을 사용했다면 페이지 액세스 토큰은 1시간 동안만 유효합니다.
  • 장기 실행 사용자 액세스 토큰을 사용했다면 페이지 액세스 토큰에 만료 날짜가 없습니다.

장기 실행 페이지 액세스 토큰을 생성하려면 이 가이드를 참조하세요.

3a. Instagram 개발자 대시보드 도구를 통해 페이지 액세스 토큰 가져오기

현재 출시 중인 이 도구는 앞으로 몇 주에 걸쳐 모든 개발자에게 출시됩니다. 앱 대시보드에서 설정이 보이지 않으면 위의 1~5단계에 따라 페이지 액세스 토큰을 생성할 수 있습니다.

또는 Instagram을 지원하는 Messenger API에 온보딩하려는 자산(Instagram 계정과 FB 페이지)을 소유한 경우 개발자 앱 대시보드에 있는 Instagram 설정 도구를 활용하여 손쉽게 페이지 액세스 토큰과 Webhooks를 설정할 수 있습니다. 개발자 앱 대시보드 → Messenger → Instagram 설정에서 도구를 찾을 수 있습니다. 기존의 토큰 및 Webhooks 구성 방법을 이용할 수도 있지만, 이 도구를 사용하면 더욱 쉽게 환경을 설정할 수 있습니다.

4. 메시지 제어의 연결된 도구 설정 활성화

API를 통해 Instagram 메시지를 관리하려면 Instagram 프로페셔널 계정의 메시지 제어 설정에서 연결된 도구 토글을 활성화해야 합니다.

5. Instagram 프로페셔널 계정의 받은 메시지함 개체 가져오기

캡처한 페이지 ID와 페이지 액세스 토큰(PAT)을 사용하여 GET /{page-id}/conversations?platform=instagram 엔드포인트를 쿼리합니다.

curl -i -X GET \
 "https://graph.facebook.com/v9.0/17841405822304914/conversations?platform=instagram&access_token={access-token}"  

그러면 Instagram 사용자에 대한 모든 스레드 개체의 ID가 반환됩니다.

{
  "data": [
    {
      "id": "aWdfZAG06MTpJR01lc3NhZA2VUaHJlYWQ6OTAwMTAxNDYyOTkyODI6MzQwMjgyMzY2ODQxNzEwMzAwOTQ5MTI4MTM2MDk5MDc1MzYyOTgx"
    },
    {
      "id": "aWdfZAG06MTpJR01lc3NhZA2VUaHJlYWQ6OTAwMTAxNDYyOTkyODI6MzQwMjgyMzY2ODQxNzEwMzAwOTQ5MTI4MTYzMzQ2MzE5NjM1NDcy"
    },
    {
      "id": "aWdfZAG06MTpJR01lc3NhZA2VUaHJlYWQ6OTAwMTAxNDYyOTkyODI6MzQwMjgyMzY2ODQxNzEwMzAwOTQ5MTI4MTk3MTY0NjI2NzAyMjMw"
    },
    {
      "id": "aWdfZAG06MTpJR01lc3NhZA2VUaHJlYWQ6OTAwMTAxNDYyOTkyODI6MzQwMjgyMzY2ODQxNzEwMzAwOTQ5MTI4MzkzNDI5MDYzMzkyNjU0"
    }
}

이 마지막 쿼리를 성공적으로 수행할 수 있으면 모든 Instagram을 지원하는 Messenger API 엔드포인트를 사용하여 쿼리를 수행할 수 있을 것입니다. 다양한 가이드와 참고 자료를 참조하여 각 엔드포인트의 기능과 필요한 권한에 대해 알아보세요.

다음 단계

  • 필요한 다른 엔드포인트를 성공적으로 사용하고 각 엔드포인트에 필요한 권한을 추적할 수 있도록 앱을 추가적으로 개발합니다.
  • 사용자가 Instagram 프로페셔널 계정에 메시지를 보낼 때마다 실시간 알림을 수신할 수 있도록 Webhooks 설정을 완료합니다.
  • 앱에 필요한 모든 권한에 대해 앱 검수 절차와 요청 승인을 완료하여 앱이 프로덕션에 배포되었을 때 앱 사용자가 권한을 부여할 수 있도록 합니다.

개발자 지원