Skip to main content

iOS Sharing Function

Use the SendMessage or Share method and pass in FriendReqInfo to implement the share functionality.Callback information references Unity Callback / Unreal Callback.

Facebook

Requires installation of Facebook/Messenger app, iOS 15.1+.

note
  • Since 2019.06.10, the Share to Messenger SDK no longer supports new apps
  • Since Facebook SDK V4.22.0, the Title, Description, Caption, and ImagePath fields are ignored when sharing links
MethodContentTarget
SendMessageLinkMessenger
ShareLinkFeed
ShareImageFeed / Gaming
ShareVideoFeed / Reels

Share link to Messenger.

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • Link: URL
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.facebook.com/link";
INTLAPI.SendMessage(reqInfo, INTLChannel.Facebook);
Share link

Share link to Facebook Feed.

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • Link: URL
  • ExtraJson (optional): {"hashtag":"#value"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.facebook.com/link";
reqInfo.ExtraJson = "{\"hashtag\":\"#value\"}";
INTLAPI.Share(reqInfo, INTLChannel.Facebook);
Share hashtag

Share: Image

Share image to Facebook Feed or Gaming.

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Local path or URL (≤12MB)
  • ExtraJson (optional):
    • Feed mode: {"hashtag":"#value"}
    • Gaming mode: {"mode":1} (hashtag not supported)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://example.com/image.png";
reqInfo.ExtraJson = "{\"hashtag\":\"#value\"}";
INTLAPI.Share(reqInfo, INTLChannel.Facebook);

Feed share example: For reference, see Share: Link

Gaming Share Example:

Share hashtag

Share: Video

Share video to Facebook Feed or Reels.

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Local path (≤50MB)
  • ExtraJson:
    • Feed mode: {"hashtag":"#value"}
    • Reels mode: {"share_to_reels":true, "hashtag":"#value"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";

// Share to Feed
reqInfo.ExtraJson = "{\"hashtag\":\"#value\"}";
INTLAPI.Share(reqInfo, INTLChannel.Facebook);

// Share to Reels
reqInfo.ExtraJson = "{\"share_to_reels\":true, \"hashtag\":\"#value\"}";
INTLAPI.Share(reqInfo, INTLChannel.Facebook);
Share hashtag

Garena

Important Notice

Garena has announced that it will migrate from the Garena mobile app to the web system by the end of 2024.Garena sub-channels will no longer be available.

Use the subChannel parameter in ExtraJson to share content to Garena-supported sub-channels (Facebook, LINE).

ExtraJson parameters:

  • subChannel: Sub-channel name (Facebook / Line)
  • mediaTagName: Extra parameter or empty string
  • caption: Description for shared content (optional)

Sub-channel: Facebook

Facebook app must be installed.

MethodContent
ShareText, link, image

Share: Text

Parameters:

  • Type: Friend_REQ_TEXT (Unity) / kReqText (UE)
  • Description: Text content
  • ExtraJson: {"subChannel":"Facebook"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "Hello, long time no see";
reqInfo.ExtraJson = "{\"subChannel\":\"Facebook\"}";
INTLAPI.Share(reqInfo, "Garena");

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • Link: URL
  • ExtraJson: {"subChannel":"Facebook"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
reqInfo.ExtraJson = "{\"subChannel\":\"Facebook\"}";
INTLAPI.Share(reqInfo, "Garena");

Share: Image

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path (≤12MB)
  • ExtraJson: {"subChannel":"Facebook", "mediaTagName":"me"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://example.com/image.png";
reqInfo.ExtraJson = "{\"subChannel\":\"Facebook\",\"mediaTagName\":\"me\"}";
INTLAPI.Share(reqInfo, "Garena");

Sub-channel: LINE

Requires LINE app installation, Garena login not required.

MethodContent
SendMessageLink, image
ShareLink, image

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • Link: URL
  • ExtraJson: {"subChannel":"Line"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
reqInfo.ExtraJson = "{\"subChannel\":\"Line\"}";
INTLAPI.SendMessage(reqInfo, "Garena");

SendMessage: Image

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path
  • ExtraJson: {"subChannel":"Line"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://example.com/image.png";
reqInfo.ExtraJson = "{\"subChannel\":\"Line\"}";
INTLAPI.SendMessage(reqInfo, "Garena");

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • Link: URL
  • ExtraJson: {"subChannel":"Line"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
reqInfo.ExtraJson = "{\"subChannel\":\"Line\"}";
INTLAPI.Share(reqInfo, "Garena");

Share: Image

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path
  • ExtraJson: {"subChannel":"Line"}
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://example.com/image.png";
reqInfo.ExtraJson = "{\"subChannel\":\"Line\"}";
INTLAPI.Share(reqInfo, "Garena");
Share hashtag

LINE

Requires LINE app installation, iOS 17.0+.

MethodContent
SendMessageText, image

SendMessage: Text

Parameters:

  • Type: Friend_REQ_TEXT (Unity) / kReqText (UE)
  • Description: Text content
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "INTL services";
INTLAPI.SendMessage(reqInfo, INTLChannel.Line);

SendMessage: Image

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Local path or URL
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://example.com/image.png";
INTLAPI.SendMessage(reqInfo, INTLChannel.Line);

WeChat

Requires WeChat app installation, iOS 14.0+.

MethodContent
SendMessageText, link, image, video
ShareText, link, image, video

SendMessage: Text

Parameters:

  • Type: Friend_REQ_TEXT (Unity) / kReqText (UE)
  • Description: Text content
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "Hello, long time no see";
INTLAPI.SendMessage(reqInfo, INTLChannel.W);

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • Link: URL
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
INTLAPI.SendMessage(reqInfo, INTLChannel.W);

SendMessage: Image

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "/path/to/image";
INTLAPI.SendMessage(reqInfo, INTLChannel.W);
Share hashtag

SendMessage: Video

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Video path
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.SendMessage(reqInfo, INTLChannel.W);

Share: Text

Parameters:

  • Type: Friend_REQ_TEXT (Unity) / kReqText (UE)
  • Description: Text content
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "Hello, long time no see";
INTLAPI.Share(reqInfo, INTLChannel.W);

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • Link: URL
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
INTLAPI.Share(reqInfo, INTLChannel.W);

Share: Image

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "/path/to/image";
INTLAPI.Share(reqInfo, INTLChannel.W);
Share hashtag

Share: Video

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Video path
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.Share(reqInfo, INTLChannel.W);

QQ

Requires QQ app installation, iOS 14.0+.

MethodContentTarget
SendMessageText, link, image, videoQQ Friend
ShareLink, image, videoQZone

SendMessage: Text

Parameters:

  • Type: Friend_REQ_TEXT (Unity) / kReqText (UE)
  • Description: Text content (≤1536 characters)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "INTL text sending test";
INTLAPI.SendMessage(reqInfo, INTLChannel.QQ);
Share hashtag

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • Title: Title (≤128 characters)
  • Description: Description (≤512 characters)
  • Link: URL (≤1024 characters)
  • ThumbPath: Thumbnail (≤1MB)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
reqInfo.Title = "INTL test";
reqInfo.Description = "INTL link sending test";
reqInfo.ThumbPath = "http://mat1.gtimg.com/www/qq2018/imgs/qq_logo_2018x2.png";
INTLAPI.SendMessage(reqInfo, INTLChannel.QQ);

SendMessage: Image

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path (local or URL, ≤1MB)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://example.com/image.png";
INTLAPI.SendMessage(reqInfo, INTLChannel.QQ);

SendMessage: Video

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Video path (local path)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.SendMessage(reqInfo, INTLChannel.QQ);

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • Title: Title (≤128 characters)
  • Description: Description (≤512 characters)
  • Link: URL (≤1024 characters)
  • ImagePath: Thumbnail (≤1MB)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Title = "INTL share";
reqInfo.Description = "INTL description";
reqInfo.Link = "https://www.google.com";
reqInfo.ImagePath = "http://mat1.gtimg.com/www/qq2018/imgs/qq_logo_2018x2.png";
INTLAPI.Share(reqInfo, INTLChannel.QQ);

Share: Image

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path (local or URL, ≤1MB)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://example.com/image.png";
INTLAPI.Share(reqInfo, INTLChannel.QQ);

Share: Video

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Video path (local path)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.Share(reqInfo, INTLChannel.QQ);
Share hashtag

Instagram

Requires Instagram app installation, iOS 15.1+.

note

When sharing images or videos, Share will immediately return success regardless of actual result.

MethodContent
ShareImage, video

Share: Image

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path (recommended JPEG 640x640px)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "/path/to/image";
INTLAPI.Share(reqInfo, INTLChannel.Instagram);

Share: Video

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Video path (MP4, 3-600 seconds, ≥640×640px)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.Share(reqInfo, INTLChannel.Instagram);
Share hashtag

WhatsApp

Requires installation and login to WhatsApp app.

note

When sharing text or links, Share will immediately return success regardless of actual result.

MethodContent
ShareText, link, image, video

Share: Text

Parameters:

  • Type: Friend_REQ_TEXT (Unity) / kReqText (UE)
  • Description: Content text
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "Hello, long time no see";
INTLAPI.Share(reqInfo, "WhatsApp");

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • Link: URL
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
INTLAPI.Share(reqInfo, "WhatsApp");

Share: Image

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: Image path
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "/path/to/image";
INTLAPI.Share(reqInfo, "WhatsApp");

Share: Video

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Video path
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.Share(reqInfo, "WhatsApp");
Share hashtag

YouTube

MethodContent
ShareVideo

Share: Video

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Video path (local or URL)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.Share(reqInfo, "Youtube");

TikTok

Requires installation and login to TikTok app.

MethodContent
ShareVideo

Share: Video

Parameters:

  • Type: Friend_REQ_VIDEO (Unity) / kReqVideo (UE)
  • MediaPath: Video path (local or URL)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.Share(reqInfo, "TikToK");
Share hashtag

X

Requires installation and login to X app.

note

X SDK is no longer maintained; system sharing will be used when sharing content.

MethodContent
ShareText, link, image
Notes
  • During iOS authorization, X may not be able to redirect back to the game. You can retry to resolve this.
  • Multi-account switching: Add "login_first":1 to ExtraJson to force re-authorization.
  • Repeatedly sharing the same content in a short period may result in a 403 error

Share: Text

Parameters:

  • Type: Friend_REQ_TEXT (Unity) / kReqText (UE)
  • Description: Content text
  • ExtraJson (optional): {"login_first":1} to force re-authorization
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "Hello, long time no see";
INTLAPI.Share(reqInfo, INTLChannel.Twitter);

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • Link: URL
  • ExtraJson (optional): {"login_first":1} forces reauthorization
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
INTLAPI.Share(reqInfo, INTLChannel.Twitter);

Share: Image

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: image path (local or URL)
  • ExtraJson (optional): {"login_first":1} forces reauthorization
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "/path/to/image";
INTLAPI.Share(reqInfo, INTLChannel.Twitter);

VK

MethodContent
ShareText, Link, Image

Share: Text

Parameters:

  • Type: Friend_REQ_TEXT (Unity) / kReqText (UE)
  • Description: content text
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "Hello, long time no see";
INTLAPI.Share(reqInfo, INTLChannel.VK);

Parameters:

  • Type: Friend_REQ_LINK (Unity) / kReqLink (UE)
  • Link: URL
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
INTLAPI.Share(reqInfo, INTLChannel.VK);

Share: Image

Parameters:

  • Type: Friend_REQ_IMAGE (Unity) / kReqImage (UE)
  • ImagePath: image path (local or URL)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "/path/to/image";
INTLAPI.Share(reqInfo, INTLChannel.VK);

System Share

Use iOS native sharing functionality.

MethodContent
ShareText, Link, Image

Parameter requirements:

  • Text: Description
  • Link: Description + Link
  • Image: ImagePath

Customize the sharing interface

Only supports removing iOS system apps (Mail, SMS, Reminders, AirDrop, etc.), cannot control the display of third-party apps.ExtraJson configuration is not effective for system sharing.

Data Reporting

Player Network SDK will automatically report system share events, and data reports can be queried on the DD platform under insight_1000_system_share.

Key fields:

  • name: callback name, e.g. vk:com.vkontakte.android.sharing.SharingExternalActivity
  • package_name: channel package name, e.g. QQ's com.tencent.mqq

Reports can be filtered by keywords, such as QQ, Facebook, VK, etc.

Share hashtag