С помощью публикации в ленте можно дать пользователям приложения возможность публиковать материалы в своих лентах Instagram.
Неявные объекты Intent в Android и универсальные ссылки или API Document Interaction в iOS позволяют передавать фото и видео из вашего приложения в приложение Instagram. Приложение Instagram будет получать этот контент и загружать его в поле для создания публикации в ленте, откуда пользователь сможет опубликовать его в своей ленте Instagram.
В реализациях для Android используются неявные намерения (объекты Intent) с дополнительным параметром EXTRA_STREAM, позволяющие предложить пользователю выбрать приложение Instagram. В случае такого выбора объект Intent запустит приложение Instagram и передаст ему соответствующий контент, который оно затем загрузит в поле для создания публикации в ленте.
Обычно процесс публикации выглядит следующим образом:
В приложение Instagram можно передавать следующий контент:
Контент | Типы файлов | Описание |
---|---|---|
Объект изображения | JPEG, GIF или PNG | - |
Объект файла | MKV, MP4 | Минимальная длительность: 3 секунды, максимальная длительность: 10 минут, минимальные размеры: 640 x 640 пикселей. |
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")); }
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")); }
В реализации для iOS можно запускать приложение Instagram и передавать ему содержимое, а также инициировать выполнение в нем определенных действий, используя универсальные ссылки.
Перечисленные в таблице ниже универсальные ссылки позволяют выполнять различные действия в приложении Instagram.
Универсальная ссылка | Действие |
---|---|
https://www.instagram.com | Запуск приложения Instagram. |
https://www.instagram.com/create/story | Запуск приложения Instagram в режиме камеры (или библиотеки фото, если на устройстве отсутствует камера). |
https://www.instagram.com/p/{media_id} | Запуск приложения Instagram и загрузка публикации с указанным ID ( |
https://www.instagram.com/{username} | Запуск приложения Instagram и загрузка страницы пользователя Instagram с соответствующим значением имени пользователя ( |
https://www.instagram.com/explore/locations/{location_id} | Запуск приложения Instagram и загрузка ленты местоположения для указанного ID ( |
https://www.instagram.com/explore/tags/{tag_name} | Запуск приложения Instagram и загрузка страницы хэштега с указанным значением имени ( |
Ниже приведен пример кода на Objective-C, который запускает приложение Instagram в режиме камеры.
NSURL *instagramURL = [NSURL URLWithString:@"https://www.instagram.com/create/story"]; if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) { [[UIApplication sharedApplication] openURL:instagramURL]; }
Если ваше приложение создает фотографии и вы хотите, чтобы пользователи могли делиться ими через Instagram, используйте API Document Interaction, чтобы открывать эти фотографии в процессе публикации Instagram.
Для этого сначала необходимо сохранить файл в формате PNG или JPEG (на ваше усмотрение) и использовать имя файла с расширением .ig
. С помощью API Document Interaction в iOS можно открывать фотографии через Instagram. Для нашего UTI Document Interaction используется идентификатор com.instagram.photo
. Он соответствует UTI public/jpeg и public/png. Подробнее см. в документации Apple, статьи Previewing and Opening Files (Предварительный просмотр и открытие файлов) и UIDocumentInteractionController Class Reference (Справка по классу UIDocumentInteractionController).
Если вы хотите, чтобы в списке приложений отображался только Instagram (а не Instagram И другие приложения, поддерживающие формат public/jpeg), можно указать класс расширения igo
, относящийся к типу com.instagram.exclusivegram
.
При запуске Instagram сразу же открывает пользователю экран фильтров. Изображение загружается и адаптируется по размеру для Instagram. Лучше всего в Instagram отображаются квадратные файлы в формате JPEG размером 640 на 640 пикселей. Если изображение больше, его размер будет динамически изменен.