Primeros pasos

En este documento se explica cómo llamar correctamente a la API Graph de Instagram con tu app y obtener objetos multimedia de una cuenta de empresa o creador de Instagram. Se da por sentado que conoces la API Graph y el inicio de sesión con Facebook, y que sabes cómo realizar llamadas a la API REST. Si aún no tienes una app, puedes usar el explorador de la API Graph como alternativa y saltear los pasos 1 y 2.

Antes de empezar

Necesitarás acceso a lo siguiente:

1. Configurar el inicio de sesión con Facebook

En el panel de apps, agrega el producto Inicio de sesión con Facebook a tu app.

Puedes dejar todos los ajustes con los valores predeterminados. Si estás implementando el inicio de sesión con Facebook de manera manual (no recomendado), ingresa tu redirect_uri en el campo URI de redireccionamiento de OAuth válidos. Si deseas usar uno de nuestros SDK, puedes dejar el campo en blanco.

2. Implementar el inicio de sesión con Facebook

Sigue las indicaciones de nuestra documentación sobre el inicio de sesión con Facebook correspondiente a tu plataforma e implementa la función en tu app. Configura tu implementación para solicitar estos permisos:

3. Obtener un token de acceso de usuario

Después de que hayas implementado el inicio de sesión con Facebook, asegúrate de haber iniciado sesión en tu cuenta de desarrollador de Facebook y, luego, accede a tu app y activa el cuadro de diálogo de inicio de sesión con Facebook. Recuerda debes poder realizar tareas con tu cuenta de desarrollador de Facebook en la página de Facebook conectada a la cuenta de Instagram a la que desees hacer consultas.

Una vez que hayas activado el cuadro de diálogo, haz clic en aceptar para otorgar a tu app los permisos instagram_basic y pages_show_list.

La API debería devolver un token de acceso de usuario. Captura el token para que tu app pueda usarlo en las siguientes consultas. Si estás usando el explorador de la API Graph, el token se captura automáticamente y se muestra en el campo Token de acceso para referencia:

4. Acceder a las páginas del usuario

Haz una consulta al punto de conexión GET /me/accounts (se convierte en GET /{user-id}/accounts, que aplica GET en el nodo User de Facebook según tu token de acceso).

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

Esto debería devolver una colección de páginas de Facebook en las que el usuario de Facebook pueda realizar las tarea MANAGE, CREATE_CONTENT, MODERATE o ADVERTISE:

{
  "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"
      ]
    }
  ]
}

Captura el identificador de la página de Facebook conectada a la cuenta de Instagram a la que deseas realizar la consulta. Ten en cuenta que los usuarios de tu app tienen que poder realizar tareas en varias páginas, por lo que en un momento dado deberás introducir lógica que pueda determinar el identificador de página correcto que se capturará (o diseñar una UI en la que los usuarios de tu app puedan identificar la página correcta).

5. Obtener la cuenta de Instagram para empresas de la página

Usa el identificador de página que capturaste para hacer la consulta al punto de conexión 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}"

Esto debería devolver el usuario de Instagram (una cuenta de empresa o creador de Instagram) que está conectado a la página de Facebook.

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

Captura el identificador de usuario de Instagram.

6. Obtener los objetos multimedia de la cuenta de Instagram para empresas

Usa el identificador de usuario de Instagram que capturaste para realizar consultas al punto de conexión GET /{ig-user-id}/media:

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

Esto debería devolver los identificadores de todos los objetos multimedia de Instagram del usuario de Instagram:

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

Si puedes realizar esta última consulta correctamente, deberías poder realizar consultas usando cualquiera de los puntos de conexión de la API Graph de Instagram; consulta las diferentes guías y referencias para saber lo que cada uno de los puntos de conexión puede hacer y los permisos que necesitan.

Próximos pasos

  • Continúa desarrollando tu app para que pueda usar correctamente cualquier otro punto de conexión que necesite y realiza un seguimiento de los permisos que necesite cada punto de conexión.
  • Completa el proceso de revisión de apps y solicita aprobación para todos los permisos que tu app necesitará, de manera que los usuarios de la app puedan otorgarlos mientras se encuentre en el modo activo.
  • Habilita el modo activo de tu app y preséntala a posibles usuarios.

Una vez que se habilite el modo activo de tu app, cualquier usuario de Facebook a cuya disposición hayas puesto la app podrá acceder a los datos de la cuenta de empresas o usuario de Instagram siempre que tenga una cuenta de usuario de Facebook que pueda realizar tareas en la página conectada a dicha cuenta de empresa o creador de Instagram.