iOS 및 Android용 Messenger에 공유

iOS 또는 Android용 Facebook SDK 버전 4.29.0 이상을 사용하여 개발하는 경우 앱의 링크와 미디어를 모두 Messenger에 공유하도록 설정할 수 있습니다. 이러한 공유 기능은 작성자 표시 링크를 통해 채팅 확장 기능을 트리거하기 위해 사용할 수 있습니다. 공유자의 더 보기 메뉴에도 채팅 확장 기능이 추가됩니다.

자세한 내용은 다음 섹션을 참조하세요.

웹용 Messenger에 공유 기능을 구현하려면 웹용 Messenger에 공유를 참조하세요.

공유 유형

Facebook SDK는 작성자가 표시되는 공유 유형 네 개와 작성자가 표시되지 않는 공유 유형 하나를 제공합니다.

다음 테이블에는 Messenger에 공유 기능에서 지원되는 모든 공유 유형이 페이지 또는 앱 ID가 필요한지 여부 및 템플릿을 사용하는 방법과 함께 표시됩니다.

공유 유형 페이지 ID가 필요한가요?

일반 템플릿

선택 사항

  • 버튼이 있는 일반 템플릿
  • 기본 액션이 있는 일반 템플릿
  • 버튼과 기본 액션이 있는 일반 템플릿

미디어 템플릿

필수

  • 미디어 템플릿 이미지 URI
  • 미디어 템플릿 이미지 첨부 파일 ID
  • 미디어 템플릿 동영상 URL
  • 미디어 템플릿 동영상 첨부 파일 ID

오픈 그래프 음악

필수

  • 오픈 그래프 음악

링크 공유

선택 사항

  • 작성자 표시가 없는 링크
  • 작성자 표시가 있는 링크

사진

지원되지 않음

  • 사진
  • 라이브러리의 사진

앱과 페이지 ID 연결

개발자는 공유 플로에서 페이지 ID를 지정할 수 있으며 사람들이 공유 SDK를 사용하여 앱의 콘텐츠를 Messenger에 공유할 때 콘텐츠 작성자가 페이지에 표시됩니다. 따라서, 페이지 관리자는 페이지에 작성자 표시 공유 기능을 사용할 수 있는 앱을 관리하여 작성자가 잘못 표시되지 않도록 할 수 있습니다. 앱에 작성자 표시 공유 기능을 부여하기 위해 관리자는 앱의 ID를 페이지 ID와 연결합니다.

앱 ID와 페이지 ID를 연결하려면 다음 단계를 따르세요.

  1. 페이지의 설정으로 이동합니다.
  2. Messenger 플랫폼 섹션을 클릭합니다.
  3. 일반 설정앱 연결 섹션으로 이동합니다.
  4. 앱 ID를 입력하고 연결 버튼을 클릭합니다.
  5. 앱이 아직 받아보는 앱 테이블에 없는 경우 앱이 앱과 연결된 '작성자 표시 공유' 역할과 함께 테이블에 표시됩니다. 앱이 이미 테이블에 있으면 해당 앱에 '작성자 표시 공유' 역할이 새로 추가됩니다.

페이지 관리자는 앱의 작성자 표시 공유 기능 사용 권한을 삭제할 수도 있습니다.

지정된 앱의 '작성자 표시 공유' 역할을 삭제하려면 다음 단계를 따르세요.

  1. 받아보는 앱 테이블에서 앱의 '역할' 열의 드롭다운을 클릭합니다.
  2. '작성자 표시 공유'를 클릭하여 역할을 선택 취소합니다.
  3. '작성자 표시 공유'가 앱의 유일한 역할인 경우 앱의 행이 테이블에서 삭제됩니다. 그렇지 않은 경우 행이 남아 있지만 '작성자 표시 공유' 행이 선택 취소됩니다.

도메인을 화이트리스트에 추가

공유 SDK에서 URL 버튼을 사용하며 Messenger에서 열 때 URL의 Messenger 확장 기능을 활성화하려는 경우 공유 기능이 올바로 작동하려면 URL 도메인을 화이트리스트에 추가해야 합니다.

도메인을 화이트리스트에 추가하려면 다음 단계를 따르세요.

  1. 페이지의 설정으로 이동합니다.
  2. Messenger 플랫폼 섹션을 클릭합니다.
  3. 일반 설정앱 연결 섹션으로 이동합니다.
  4. 화이트리스트에 추가된 도메인 필드에 URL의 도메인을 입력하고 저장을 클릭합니다.

화이트리스트에 대한 자세한 내용은 Messenger 확장 기능 SDK - 필수 도메인 화이트리스트를 참조하세요.

IOS

필수 조건

Messenger에 공유 기능을 앱에 추가하기 전에 다음 단계를 완료하세요.

자세한 내용은 iOS용 Facebook SDK 시작하기를 참조하세요.

또한 앱에서 FBSDKMessageDialog 인스턴스의 canShow를 호출하여 사람들이 기기에 호환되는 Messenger 버전을 설치했는지 확인하세요.

일반 템플릿 예시 공유

FBSDKShareMessengerURLActionButton *urlButton = [[FBSDKShareMessengerURLActionButton alloc] init];
urlButton.title = @"Visit Facebook";
urlButton.url = [NSURL URLWithString:@"https://www.facebook.com"];
    
FBSDKShareMessengerGenericTemplateElement *element = [[FBSDKShareMessengerGenericTemplateElement alloc] init];
element.title = @"This is a Cat Picture";
element.subtitle = @"Look at this cat, wow! Amazing.";
element.imageURL = [NSURL URLWithString:@"https://static.pexels.com/photos/126407/pexels-photo-126407.jpeg"];
element.button = urlButton;
    
FBSDKShareMessengerGenericTemplateContent *content = [[FBSDKShareMessengerGenericTemplateContent alloc] init];
content.pageID = // Your page ID, required for attribution
content.element = element;

FBSDKMessageDialog *messageDialog = [[FBSDKMessageDialog alloc] init];
messageDialog.shareContent = content;

if ([messageDialog canShow]) {
    [messageDialog show];
}

미디어 템플릿 예시 공유

// Share with mediaURL
FBSDKShareMessengerURLActionButton *urlButton = [[FBSDKShareMessengerURLActionButton alloc] init];
urlButton.title = @"Visit Facebook";
urlButton.url = [NSURL URLWithString:@"https://www.facebook.com"];

NSURL *mediaURL = // Must be a Facebook URL, see media template documentation
FBSDKShareMessengerMediaTemplateContent *content = [[FBSDKShareMessengerMediaTemplateContent alloc] initWithMediaURL:mediaURL];
content.pageID = // Your page ID, required
content.mediaType = FBSDKShareMessengerMediaTemplateMediaTypeImage;
content.button = urlButton;

FBSDKMessageDialog *messageDialog = [[FBSDKMessageDialog alloc] init];
messageDialog.shareContent = content;

if ([messageDialog canShow]) {
    [messageDialog show];
}

------------------------------------------------------------------

// Share with attachmentID
FBSDKShareMessengerURLActionButton *urlButton = [[FBSDKShareMessengerURLActionButton alloc] init];
urlButton.title = @"Visit Facebook";
urlButton.url = [NSURL URLWithString:@"https://www.facebook.com"];

NSString *attachmentID = // attachmentID, see media template documentation for how to upload an attachment
FBSDKShareMessengerMediaTemplateContent *content = [[FBSDKShareMessengerMediaTemplateContent alloc] initWithAttachmentID:attachmentID];
content.pageID = // Your page ID, required
content.mediaType = FBSDKShareMessengerMediaTemplateMediaTypeImage;
content.button = urlButton;

FBSDKMessageDialog *messageDialog = [[FBSDKMessageDialog alloc] init];
messageDialog.shareContent = content;

if ([messageDialog canShow]) {
    [messageDialog show];
}

오픈 그래프 음악 예시 공유

FBSDKShareMessengerURLActionButton *urlButton = [[FBSDKShareMessengerURLActionButton alloc] init];
urlButton.title = @"Visit Facebook";
urlButton.url = [NSURL URLWithString:@"https://www.facebook.com"];

FBSDKShareMessengerOpenGraphMusicTemplateContent *content = [[FBSDKShareMessengerOpenGraphMusicTemplateContent alloc] init];
content.pageID = // Your page ID, required
content.url = // open graph music url, see open graph music documentation
content.button = urlButton;

FBSDKMessageDialog *messageDialog = [[FBSDKMessageDialog alloc] init];
messageDialog.shareContent = content;

if ([messageDialog canShow]) {
    [messageDialog show];
}

Android

필수 조건

아래 요약되어 있는 Android에서 공유의 지침을 따르세요.

또한 앱에서 MessageDialog.canshow({template})를 호출하여 사람들이 기기에 호환되는 Messenger 버전을 설치했는지 확인하세요.

일반 템플릿 예시 공유

ShareMessengerURLActionButton actionButton =
    new ShareMessengerURLActionButton.Builder()
           .setTitle("Visit Facebook")
           .setUrl(Uri.parse("https://www.facebook.com"))
           .build();
ShareMessengerGenericTemplateElement genericTemplateElement =
    new ShareMessengerGenericTemplateElement.Builder()
           .setTitle("Visit Facebook")
           .setSubtitle("Visit Messenger")
           .setImageUrl(Uri.parse("heeps://Your/Image/Url"))
           .setButton(actionButton)
           .build();
ShareMessengerGenericTemplateContent genericTemplateContent = 
    new ShareMessengerGenericTemplateContent.Builder()
           .setPageId("Your Page Id") // Your page ID, required
           .setGenericTemplateElement(genericTemplateElement)
           .build();  
                 
if (MessageDialog.canShow(genericTemplateContent)) {
    MessageDialog.show(activityOrFragment, genericTemplateContent);
}

미디어 템플릿 공유

// Share with mediaURL
ShareMessengerMediaTemplateContent mediaTemplateContent =
    new ShareMessengerMediaTemplateContent.Builder()
            .setPageId("Your page ID") // Your page ID, required
            .setMediaType(MediaType.IMAGE)
            .setMediaUrl(Uri.parse("https://Facebook/Media/URL")) // Must be a Facebook URL, see media template documentation
            .setButton(actionButton)
            .build();
if (MessageDialog.canShow(mediaTemplateContent)) {
    MessageDialog.show(activityOrFragment, mediaTemplateContent);
}

// Share with attachmentID
ShareMessengerMediaTemplateContent mediaTemplateContent =
    new ShareMessengerMediaTemplateContent.Builder()
            .setPageId("Your page ID") // Your page ID, required
            .setMediaType(MediaType.IMAGE)
            .setAttachmentId("Attachment Id") // AttachmentID, see media template documentation for how to upload an attachment
            .setButton(actionButton)
            .build();
if (MessageDialog.canShow(mediaTemplateContent)) {
    MessageDialog.show(activityOrFragment, mediaTemplateContent);
}

오픈 그래프 음악 예시 공유

ShareMessengerOpenGraphMusicTemplateContent musicTemplateContent =
    new ShareMessengerOpenGraphMusicTemplateContent.Builder()
                .setPageId("Your page ID") // Your page ID, required
                .setUrl(Uri.parse("https://Open/Graph/Music/URL")) // Open graph music url, see open graph music documentation
                .setButton(actionButton)
                .build();

if (MessageDialog.canShow(musicTemplateContent)) {
    MessageDialog.show(activityOrFragment, musicTemplateContent);
}