Primeros pasos

En este tutorial, te mostramos cómo usar la API de video para crear un video en una página. Suponemos que sabes cómo realizar solicitudes de cURL básicas con una herramienta de línea de comandos, como Terminal, o con una app, como Postman, y que conoces el uso básico del explorador de la API Graph.

Antes de empezar

Necesitarás lo siguiente:

  • Una app de Facebook existente. Si no tienes una app, ve a Facebook for Developers, haz clic en Mis Apps y crea una.
  • Un video a 10 a 20 MB dividido en segmentos de 5 MB, con todos los segmentos en un único directorio.
  • Una página en la que puedas realizar tareas CREATE_CONTENT.
  • Acceso a una herramienta de línea de comandos (como Terminal) o una app (como Postman) que pueda realizar solicitudes de cURL.

Paso 1: Obtener un token de acceso de usuario

Como práctica general, debes implementar el inicio de sesión con Facebook en tu app y usarlo para obtener tokens de acceso de los usuarios de tu app. Sin embargo, para este tutorial, puedes usar el explorador de la API Graph dado que ya implementó el inicio de sesión con Facebook y te permite generar tokens con facilidad para cualquiera de tus apps.

  1. Carga el explorador de la API Graph y, en el menú desplegable App de Facebook, selecciona tu app.

  2. En el menú desplegable Usuario o página, selecciona Obtener token de acceso de usuario y autentícate. Si estás reutilizando una app anterior, es posible que ya te hayas autenticado.

  3. En la sección Permisos, usa el campo de búsqueda Agregar un permiso para buscar y seleccionar los siguientes permisos: pages_manage_engagement y pages_read_user_content.
  4. Haz clic en Generar token de acceso.
  5. En la ventana que aparece, continúa con tu usuario y elige la página donde subirás tu video.
  6. Presiona Siguiente para continuar por el resto de las pantallas hasta cerrar la ventana. Esto le concede a tu app los permisos que seleccionaste y también genera un token de acceso de usuario.
  7. (Opcional). Haz clic en el icono de información azul para verificar que concediste a tu app los permisos (alcances) correctos.

Paso 2: Obtener el identificador de tu página y su token

  1. Con el explorador de la API Graph, envía una solicitud al perímetro GET /me/accounts. Se enviará una consulta a tu usuario y se devolverán las páginas a las que hayas concedido acceso a tu app en el último paso.
  2. Identifica tu página en la respuesta y copia el identificador (id) y token de acceso a la página (access_token).
  3. {
      "data": [
        {
          "access_token": "EBACf...",  //Copy your Page Access Token
          "category": "Media",
          "category_list": [
            {
              "id": "163003840417682",
              "name": "Media"
            }
          ],
          "name": "Metricsaurus",
          "id": "1755847768034402",  //Copy your Page ID
          "tasks": [
            "ANALYZE",
            "ADVERTISE",
            "MODERATE",
            "CREATE_CONTENT",
            "MANAGE"
          ]
        }
      ],
      "paging": {
        "cursors": {
          "before": "MTc1NTg0Nzc2ODAzNDQwMgZDZD",
          "after": "MTc1NTg0Nzc2ODAzNDQwMgZDZD"
        }
      }
    }
    

Paso 3: Crear una sesión de video

  1. En tu herramienta de línea de comandos, navega hasta la carpeta que contiene los segmentos de video, luego, envía una solicitud cURL al perímetro POST /page-id/videos en el host graph-video.facebook.com. Si usas Postman, incluye los valores y las claves de consulta en el cuerpo de la solicitud como form-data.

  2. Ejemplo de solicitud
    curl -X POST \
      "https://graph-video.facebook.com/1755847768034402/videos" \
      -F "access_token=EBACf..." \
      -F "upload_phase=start" \
      -F "file_size=77188035"
    
  3. Reemplaza el identificador de página (1755847768034402) en la ruta de la solicitud por tu identificador de página, configura access_token en el token de acceso a la página que acabas de copiar y file_size en el tamaño total del archivo de video, en bytes.

  4. La API devuelve una sesión de video:
    {
      "video_id": "225467151853466",
      "start_offset": "0",
      "end_offset": "1048576",
      "upload_session_id": "225467155186799"
    }
    
  5. Copia todos los valores devueltos, excepto end_offset.

Paso 4: subir el primer segmento de video

Envía otra solicitud al perímetro POST /{page-id}/videos e incluye tu upload_session_id y el nombre de tu primer segmento de video.

Ejemplo de solicitud

curl -X POST \
  "https://graph-video.facebook.com/1755847768034402/videos" \
  -F "access_token=EBACf..." \
  -F "upload_phase=transfer" \
  -F "start_offset=0" \
  -F "upload_session_id=225467155186799" \
  -F "video_file_chunk=@xaa"

Si usas cURL, incluye el símbolo @ antes de tu nombre de archivo.

Si usas Postman, omite el símbolo @, configura video_file_chunk en Archivo (pasa el mouse por la fila para activar el menú desplegable) y selecciona el primer segmento de archivo manualmente.

La API responderá con un nuevo valor de start_offset. Captura el nuevo valor.

{
  "start_offset": "10485760",
  "end_offset": "15728640"
}

Paso 5: subir los segmentos de video restantes

  1. Realiza la misma solicitud, pero configura start_offset en el nuevo valor start_offset que se devolvió en la respuesta anterior, y video_file_chunk en el nombre del próximo segmento de video que corresponde en la secuencia.
  2. curl -X POST \
      "https://graph-video.facebook.com/1755847768034402/videos" \
      -F "access_token=EBACf..." \
      -F "upload_phase=transfer" \
      -F "start_offset=10485760" \
      -F "upload_session_id=225467155186799" \
      -F "video_file_chunk=@xab"
    
    La API responderá de nuevo con un nuevo valor de start_offset, que podrás usar para subir el siguiente segmento de la secuencia.
    {
      "start_offset":"15728640",
      "end_offset":"20971520"
    }
    
  3. Repite este paso hasta que hayas subido todos los segmentos de video restantes en el orden correcto. El programa que usaste para dividir tu archivo de video en segmentos se encargará de asignar un nombre a tus segmentos en orden secuencial.

Paso 6: finalizar la sesión de subida

Una vez que hayas subido tu segmento final, finaliza la sesión de subida; para ello, envía una solicitud final al mismo punto de conexión y configura upload_phase para finalizar.

Ejemplo de solicitud

curl -X POST \
  "https://graph-video.facebook.com/1755847768034402/videos"  \
  -F "access_token=EBACf..." \
  -F "upload_phase=finish" \
  -F "upload_session_id=225467155186799"

Si la solicitud es correcta, la API finalizará la sesión de subida y responderá con true.

{
  "success": true
}

Ensamblaremos tu video y lo codificaremos. El proceso de codificación puede demorar varios minutos en codificarse por completo, según el tamaño total de tu archivo de video.