Contenido compartido en el Feed

Compartir en la sección de noticias permite a los usuarios de tu app que compartan tu contenido en la sección de noticias de Instagram.

Información general

Mediante las intenciones implícitas de Android y los enlaces universales de iOS o la interacción con documentos, tu app puede pasar fotos y videos a la app de Instagram. La app de Instagram recibirá este contenido y lo cargará en el editor de feeds para que el usuario pueda publicarlo en su feed de Instagram.

Desarrolladores para Android

Las implementaciones de Android utilizan intents implícitas con el EXTRA_STREAM adicional para solicitar al usuario que seleccione la aplicación de Instagram. Una vez seleccionada, la intent iniciará la app de Instagram y le pasará tu contenido, que la app de Instagram cargará en el Feed Composer.

En general, los pasos del flujo para compartir son los siguientes:

  1. Crear una instancia de un intent implícito con el contenido que quieres pasar a la app de Instagram.
  2. Iniciar una actividad y comprobar que puede resolver el intent implícito.
  3. Resolver la actividad si tiene la capacidad para hacerlo.

Contenido para compartir

Puedes pasar el siguiente contenido a la app de Instagram:

ContenidoTipos de archivosDescripción

Activo de imagen

JPEG, GIF o PNG

-

Activo de archivos

MKV, MP4

Duración mínima: Duración máxima de 3 segundos: Dimensiones mínimas de 10 minutos: 6040 x 640 píxeles

Compartir un activo de imagen

String type = "image/*";
String filename = "/myPhoto.jpg";
String mediaPath = Environment.getExternalStorageDirectory() + filename;

createInstagramIntent(type, mediaPath);

private void createInstagramIntent(String type, String mediaPath){

    // Create the new Intent using the 'Send' action.
    Intent share = new Intent(Intent.ACTION_SEND);

    // Set the MIME type
    share.setType(type);

    // Create the URI from the media
    File media = new File(mediaPath);
    Uri uri = Uri.fromFile(media);

    // Add the URI to the Intent.
    share.putExtra(Intent.EXTRA_STREAM, uri);

    // Broadcast the Intent.
    startActivity(Intent.createChooser(share, "Share to"));
}

Compartir un activo de video

String type = "video/*";
String filename = "/myVideo.mp4";
String mediaPath = Environment.getExternalStorageDirectory() + filename;

createInstagramIntent(type, mediaPath);

private void createInstagramIntent(String type, String mediaPath){

    // Create the new Intent using the 'Send' action.
    Intent share = new Intent(Intent.ACTION_SEND);

    // Set the MIME type
    share.setType(type);

    // Create the URI from the media
    File media = new File(mediaPath);
    Uri uri = Uri.fromFile(media);

    // Add the URI to the Intent.
    share.putExtra(Intent.EXTRA_STREAM, uri);

    // Broadcast the Intent.
    startActivity(Intent.createChooser(share, "Share to"));
}

Desarrolladores para iOS

Las implementaciones de iOS pueden usar enlaces universales para iniciar la app de Instagram y pasarle contenido o hacer que realice una acción específica.

Enlaces universales

Usa los enlaces universales que figuran en la siguiente tabla para realizar acciones en la app de Instagram.

Enlace universalAcción

https://www.instagram.com

Inicia la app de Instagram.

https://www.instagram.com/create/story

Inicia la app de Instagram con la vista de cámara o la biblioteca en dispositivos sin cámara.

https://www.instagram.com/p/{media_id}

Inicia la app de Instagram y carga la publicación que coincide con el valor de identificación especificado (int).

https://www.instagram.com/{username}

Inicia la app de Instagram y carga el usuario de Instagram que coincide con el valor de nombre de usuario especificado (string).

https://www.instagram.com/explore/locations/{location_id}

Inicia la app de Instagram y carga el feed de ubicación que coincide con el valor de identificación especificado (int).

https://www.instagram.com/explore/tags/{tag_name}

Inicia la app de Instagram y carga la página del hashtag que coincide con el valor del nombre especificado (string).

Ejemplo de código Objective-C

El siguiente ejemplo en Objective-C inicia la app de Instagram con la vista de la cámara.

NSURL *instagramURL = [NSURL URLWithString:@"https://www.instagram.com/create/story"];
if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) {
    [[UIApplication sharedApplication] openURL:instagramURL];
}

Interacción con documentos

Si tu aplicación crea fotos y quieres que los usuarios compartan estas fotos mediante Instagram, puedes usar la API de interacción con documentos para abrir la foto en el flujo de uso compartido de Instagram.

Primero, debes guardar el archivo en formato PNG o JPEG (preferido) y usar la extensión de nombre de archivo .ig. Con las API de interacción con documentos de iOS, puedes activar la foto para que Instagram la abra. El identificador de nuestra UTI de interacción con documentos es com.instagram.photo y se ajusta a las UTI public/jpeg y public/png. Para obtener más información, consulta los artículos de documentación de Apple sobre: cómo realizar vistas previas y abrir archivos y la referencia de clase UIDocumentInteractionController.

Como alternativa, si deseas mostrar solo Instagram en la lista de apps (en lugar de Instagram y otras apps que se ajusten a public/jpeg), puedes especificar la clase de extensión igo, que es del tipo com.instagram.exclusivegram.

Cuando está activada, Instagram presenta de inmediato al usuario nuestra pantalla de filtro. La imagen se carga previamente y se dimensiona de forma adecuada para Instagram. Para obtener mejores resultados, Instagram prefiere abrir una imagen JPEG de 640 por 640 píxeles. Si la imagen es más grande, se redimensiona dinámicamente.