시작하기

이 문서에서는 앱으로 Instagram 그래프 API를 성공적으로 호출하고 Instagram 비즈니스 또는 크리에이터 계정의 미디어 개체를 가져오는 방법을 설명합니다. 그래프 APIFacebook 로그인에 익숙하고 REST API 호출을 보내는 방법을 알고 있다고 가정합니다. 아직 앱이 없다면 대신 그래프 API 탐색기를 사용하고 1단계와 2단계를 건너뛸 수 있습니다.

시작하기 전에

다음의 항목을 준비해야 합니다.

1. Facebook 로그인 구성

앱 대시보드에서 Facebook 로그인 제품을 앱에 추가합니다.

모든 설정은 기본값으로 남겨 둘 수 있습니다. Facebook 로그인을 수동으로 구현할 경우(권장하지 않음) 유효한 OAuth 리디렉션 URI 필드에 redirect_uri를 입력하세요. Facebook에서 제공하는 SDK를 사용한다면 비워두셔도 됩니다.

2. Facebook 로그인 구현

플랫폼에 맞는 Facebook 로그인 문서에 따라 앱에 Facebook 로그인을 구현합니다. 다음 권한을 요청하도록 구현을 설정합니다.

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

Facebook 로그인을 구현하고 나면 Facebook 개발자 계정에 로그인한 후 앱에 액세스하여 Facebook 로그인 모달을 트리거합니다. Facebook 개발자 계정에서 쿼리하고자 하는 Instagram 계정과 연결된 Facebook 페이지에서 작업을 수행할 수 있어야 한다는 것을 기억하세요.

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

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

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

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

curl -i -X GET \
 "https://graph.facebook.com/v19.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를 구상해야 합니다).

5. 페이지의 Instagram 비즈니스 계정 가져오기

캡처한 페이지 ID를 사용하여 GET /{page-id}?fields=instagram_business_account 엔드포인트를 쿼리합니다.

curl -i -X GET \
 "https://graph.facebook.com/v19.0/134895793791914?fields=instagram_business_account&access_token={access-token}"

그러면 Facebook 페이지에 연결된 IG 사용자(Instagram 비즈니스 계정 또는 크리에이터 계정)가 반환됩니다.

{
  "instagram_business_account": {
    "id": "17841405822304914"  // Connected IG User ID
  },
  "id": "134895793791914"  // Facebook Page ID
}

IG 사용자 ID를 캡처합니다.

6. Instagram 비즈니스 계정의 미디어 개체 가져오기

캡처한 IG 사용자 ID를 사용하여 GET /{ig-user-id}/media 엔드포인트를 쿼리합니다.

curl -i -X GET \
 "https://graph.facebook.com/v19.0/17841405822304914/media?access_token={access-token}"

그러면 IG 사용자에 대한 모든 IG 미디어 개체의 ID가 반환됩니다.

{
  "data": [
    {
      "id": "17918195224117851"
    },
    {
      "id": "17895695668004550"
    },
    {
      "id": "17899305451014820"
    },
    {
      "id": "17896450804038745"
    },
    {
      "id": "17881042411086627"
    },
    {
      "id": "17869102915168123"
    }
  ],
  "paging": {
    "cursors": {
      "before": "QVFIUkdGRXA2eHNNTUs4T1ZAXNGFxQTAtd3U4QjBLd1B2NXRMM1NkcnhqRFdBcEUzSDVJZATFoLWtXMWZAGU2VrRTk2RHVtTVlDckI2NjN0UERFa2JrUk4yMW13",
      "after": "QVFIUmlwbnFsM3N2cV9lZAFdCa0hDeV9qMVliT0VuMmJyNENxZA180c0t6VjFQVEJaTE9XV085aU92OUFLNFB6Szd2amo5aV9rTlVBcnNlWmEtMzYxcE1HSFR3"
    }
  }
}

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

다음 단계

  • 앱을 추가로 개발하여 필요한 다른 엔드포인트를 성공적으로 사용하고, 각 엔드포인트에 필요한 권한을 추적합니다.
  • 앱에 필요한 모든 권한에 대해 앱 검수 절차와 요청 승인을 완료하여 앱이 라이브 모드일 때 앱 사용자가 권한을 부여할 수 있도록 합니다.
  • 앱을 라이브 모드로 전환하고 잠재적 사용자에게 홍보합니다.

앱이 라이브 모드일 경우, 앱을 이용하는 모든 Facebook 사용자는 Instagram 비즈니스 또는 크리에이터 계정의 데이터에 액세스할 수 있습니다. 다만 해당 Instagram 비즈니스 또는 크리에이터 계정에 연결된 페이지에서 작업을 수행할 수 있는 Facebook 사용자 계정이 있는 경우에 한합니다.