フィードへのシェア機能で、アプリのユーザーにコンテンツをそれぞれのInstagramのフィードにシェアすることを許可できます。
Androidの暗黙的インテント、iOSのユニバーサルリンクかドキュメントインタラクションを使って、アプリから写真や動画をInstagramアプリに渡すことができます。Instagramアプリはコンテンツを受け取ってフィードコンポーザーにロードし、ユーザーが自分のInstagramフィードに公開できるようにします。
Androidで実装する場合、暗黙的インテントとEXTRA_STREAM extraを使ってInstagramアプリを選択するようユーザーにプロンプトを出します。Instagramアプリを選択すると、インテントによりInstagramアプリが起動し、コンテンツが渡されます。そのコンテンツをInstagramアプリがフィードコンポーザーにロードします。
通常のシェアの流れは以下のとおりです。
Instagramアプリに以下のコンテンツを渡すことができます。
コンテンツ | ファイルタイプ | 説明 |
---|---|---|
画像アセット | JPEG、GIF、またはPNG | - |
ファイルアセット | MKV、MP4 | 最小期間: 3秒、最大期間: 10分、最小サイズ: 640x640ピクセル |
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アプリを起動し、指定されたusername値( |
https://www.instagram.com/explore/locations/{location_id} | Instagramアプリを起動し、指定されたID値( |
https://www.instagram.com/explore/tags/{tag_name} | Instagramアプリを起動し、指定されたname値( |
次のObjective-Cのサンプルは、Instagramアプリをカメラビューで起動します。
NSURL *instagramURL = [NSURL URLWithString:@"https://www.instagram.com/create/story"]; if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) { [[UIApplication sharedApplication] openURL:instagramURL]; }
アプリで作成した写真をユーザーがInstagramを使ってシェアできるようにする場合、ドキュメントインタラクションAPIを使ってInstagramのシェアのフローに沿って写真を開くことができます。
まず、ファイルをPNGまたはJPEG (推奨)形式で保存し、.ig
というファイル名拡張子を使用する必要があります。iOSドキュメントインタラクションAPIを使って、Instagramでその写真が開くようにトリガーできます。ドキュメントインタラクションUTIの識別情報はcom.instagram.photo
であり、public/jpeg UTIとpublic/png UTIに対応しています。詳細については、以下のAppleのドキュメントをご覧ください: Previewing and Opening Files およびUIDocumentInteractionController Class Reference 。
あるいは、アプリケーションリストに(Instagramと他のpublic/jpeg対応アプリではなく) Instagramだけを表示したい場合は、com.instagram.exclusivegram
タイプの拡張子クラスigo
を指定できます。
トリガーされると、Instagramがフィルター画面ですぐに表示されます。あらかじめ画像が読み込まれ、サイズはInstagramに合わせて調整されています。最良の結果を出すためには、Instagramでは640x640ピクセルのJPEG画像を使うことをおすすめします。画像が大きい場合は動的にサイズが変更されます。