分享至動態

有了「分享至動態」,您便可以允許應用程式用戶分享您的內容至 Instagram 動態。

概覽

透過使用 Android 的隱含意圖和 iOS 的通用連結文件互動,您的應用程式可以將相片和影片傳送至 Instagram 應用程式。Instagram 應用程式將會接收此內容,並在動態撰寫工具中載入它,以便用戶將之發佈至自己的 Instagram 動態。

Android 開發人員

Android 建置會使用含有 EXTRA_STREAM extra 的隱含意圖,以提示用戶選擇 Instagram 應用程式。選取後,該意圖將啟動 Instagram 應用程式,並向其傳送您的內容;Instagram 應用程式隨後會在動態編輯器中載入此內容。

一般而言,您的分享流程應如下所示:

  1. 使用您想傳送至 Instagram 應用程式的內容,將隱含意圖實體化。
  2. 啟動某項活動,並檢查它能否解析隱含意圖。
  3. 可以的話,請解析該項活動。

可分享的內容

您可以將下列內容傳送至 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 開發人員

iOS 建置會使用通用連結,以啟動 Instagram 應用程式並向其傳送內容,或者讓其執行特定動作。

通用連結

使用下表列出的通用連結在 Instagram 應用程式中執行動作。

通用連結動作

https://www.instagram.com

啟動 Instagram 應用程式。

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

啟動 Instagram 應用程式時開啟相機檢視模式;若是沒有相機的裝置,則開啟相片圖庫。

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

啟動 Instagram 應用程式,並載入符合指定編號值 (int) 的帖子。

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

啟動 Instagram 應用程式,並載入符合指定用戶名稱值 (string) 的 Instagram 用戶。

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

啟動 Instagram 應用程式,並載入符合指定編號值 (int) 的地點動態。

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

啟動 Instagram 應用程式,並載入符合指定名稱值 (string) 的主題標籤頁面。

Objective-C 程式碼範例

以下 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/jpegpublic/png UTI 相符。如需了解更多資訊,請參閱 Apple 文件文章:Previewing and Opening Files(預覽和打開文件)以及 UIDocumentInteractionController Class Reference(UIDocumentInteractionController 類別參考資料)

或者,如果您想在應用程式清單顯示 Instagram(而不是 Instagram 及任何其他與 public/jpeg 相符的應用程式),則可以指定副檔名類別 igo(此屬於 com.instagram.exclusivegram 類型)。

觸發時,Instagram 將立即向用戶展示我們的濾鏡螢幕。系統會預先載入圖像,並將之調整為適用於 Instagram 的尺寸。為了獲得最佳效果,Instagram 會選擇打開尺寸為 640x640 像素的正方形 JPEG 圖像。如果圖像較大,系統將會動態調整其尺寸。