分享到動態消息

透過「分享到動態消息」功能,應用程式的用戶就能以 Instagram 動態消息形式分享您的內容。

總覽

使用 Android 的隱含意圖和 iOS 的通用連結文件互動後,您的應用程式即可將相片和影片傳遞給 Instagram 應用程式。Instagram 應用程式會接收此內容並載入動態消息撰寫工具,讓用戶能夠將內容發佈到自己的 Instagram 動態消息。

Android 開發人員

Android 實作使用含 EXTRA_STREAM extra 的隱含意圖,提示用戶選擇 Instagram 應用程式。選擇完成後,該意圖將會啟動 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 應用程式並載入與特定用戶名稱值相符的 Instagram 用戶(string)。

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 偏好開啟 640×640 像素的正方形 JPEG。如果圖像較大,將視狀況重新調整大小。