跳到主要内容

Android 分享功能

调用带有 Unity SDK 或 Unreal Engine SDK 的 FriendReqInfo 数据结构的 SendMessage 或 Share 方法来实现 Android 的分享功能。

有关回调信息,请参见 回调。

Facebook​

注意

自 2019年6月10日 起,Share to Messenger SDK 不再支持新应用集成。然而,现有业务仍可访问 SendMessage 方法以分享链接至 Messenger。

由于 Facebook 网页游戏和 Facebook Gameroom 平台已不再接受新游戏的提交,Player Network SDK 已停止支持使用 SendMessage 方法来发送邀请。

Facebook 支持以下分享模式:

  • Messenger 分享:分享到 Facebook Messenger。
  • Feed 分享:分享到 Facebook 动态。
  • Reels 分享:分享到 Facebook Reels。
  • Gaming 分享:为游戏服务专用,游戏必须启用 Login for Gaming 才能使用此功能。

可用 SendMessage 和 Share 将以下内容分享到 Facebook:

  • SendMessage:链接,支持 Messenger 分享
  • Share:链接,支持 Feed 分享
  • Share:图片,支持 Feed 和 Gaming 分享
  • Share:视频,支持 Feed 和 Reels 分享
注意

自 Facebook SDK V4.22.0 起,Title、Description、Caption 和 ImagePath 字段在分享链接时不再生效。

调用 SendMessage 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_LINK。
玩家需本地安装 Messenger 应用。

参数:

  • Type
  • 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);
Image: Facebook send link

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_LINK。
玩家需本地安装 Facebook 应用。

参数:

  • Type
  • Link:URL
  • ExtraJson(可选) - 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);
Image: Facebook share link

Share:图片​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_IMAGE。
玩家需本地安装 Facebook 应用。

参数:

  • Type
  • ImagePath:图片路径,可提供本地图片路径或在线 URL
    • 图片大小不能超过 12MB
    • 在线图片不会保存到本地
  • ExtraJson(可选) - hashtag
    • 将各标签设置为 "#value",仅突出显示第一个 "#"

要使用 Gaming 分享模式,可在 ExtraJson 中添加 \"mode\":1 属性。使用 Gaming 分享模式时不能添加标签。

var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png";
reqInfo.ExtraJson = "{\"hashtag \":\"#value\"}";
INTLAPI.Share(reqInfo, INTLChannel.Facebook);

Feed 分享示例:
Image: Facebook Classic mode

Gaming 分享示例:
Image: Sharing for Gaming

Share:视频(Feed)​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_VIDEO。
玩家需本地安装 Facebook 应用。

参数:

  • Type
  • MediaPath:视频路径,视频大小不能超过 50MB
  • ExtraJson(可选) - hashtag
    • 将各标签设置为 "#value",仅突出显示第一个 "#"
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
reqInfo.ExtraJson = "{\"hashtag \":\"#value\"}";
INTLAPI.Share(reqInfo, INTLChannel.Facebook);
Image: Facebook Gaming mode

Share:视频(Reels)​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_VIDEO。
玩家需本地安装 Facebook 应用。

参数:

  • Type
  • MediaPath:视频路径,视频大小不能超过 50MB
  • ExtraJson:share_to_reels、hashtag
    • share_to_reels: 设置为 True
    • hashtag(可选): 将各标签设置为 "#value",仅突出显示第一个 "#"
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
reqInfo.ExtraJson = "{\"share_to_reels\":true, \"hashtag \":\"#value\"}";
INTLAPI.Share(reqInfo, INTLChannel.Facebook);

Garena​

要将玩家内容分享到 Garena 所支持的子渠道,可在调用 SendMessage 或 Share 方法时,将渠道名称和渠道所需参数传递给 FriendReqInfo 数据结构的 ExtraJson 属性。支持的子渠道包括 Garena、Facebook 和 LINE。

在线图片在分享到 Garena 所支持的子渠道后,不会保存到本地存储中。

ExtraJson备注
subChannelGarena 子渠道名称
mediaTagName根据游戏需求传入的额外参数或者任意空字符串
caption分享内容的说明

子渠道 Garena​

可用 SendMessage 将以下内容分享到子渠道 Garena:

  • SendMessage:文本
  • SendMessage:链接
  • SendMessage:图片

SendMessage:文本​

调用 SendMessage 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_TEXT。
玩家需安装并已登录 Garena 应用。

参数:

  • Type
  • Title:标题
  • Description:文本内容
  • ThumbPath:缩略图路径
  • ExtraJson - subChannel, mediaTagName
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Title = "INTL share";
reqInfo.Description = "Hello, long time no see";
reqInfo.ThumbPath = "http://mat1.gtimg.com/www/qq2018/imgs/qq_logo_2018x2.png";
reqInfo.ExtraJson = "{\"subChannel\":\"Garena\",\"mediaTagName\":\"me\"}";
INTLAPI::SendMessage(friendInfo, "Garena");

Garena 不支持 Player Network 的邀请类型,但可以通过文本消息发送邀请,将 mediaTagName 设置为 room ID。

当好友点击邀请时,游戏将打开且 mediaTagName 的值会在 OnAuthBaseResultEvent 中通过 ret.ExtraJson 的 game_data 传递。随后好友加入房间。

代码示例:

public void OnAuthBaseResultEvent(INTLBaseResult baseRet)
{
if(baseRet.MethodId == (int)INTLMethodID.INTL_AUTH_WAKEUP)
{
// Listen to the team invitation callback
}
}

响应示例:

{
"RetCode":0,
"RetMsg":"Success",
"MethodId":109,
"ThirdCode":-1,
"ThirdMsg":"",
"ExtraJson":"{\"params\":\"{\\\"platform\\\":\\\"1\\\",\\\"from_open_id\\\":\\\"f9aed405b81abfbdfeb305c431335ca3\\\",\\\"open_id\\\":\\\"9317b7044e2feaeff33d1feac2de33b4\\\"}\",\"game_data\":\"33\"}"
}

调用 SendMessage 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_LINK。
玩家需安装并已登录 Garena 应用。

参数:

  • Type
  • Link:URL
  • Title:标题
  • Description:描述
  • ExtraJson - subChannel, mediaTagName, caption
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_LINK;
reqInfo.Link = "https://www.google.com";
reqInfo.Title = "INTL share";
reqInfo.Description = "Hello, long time no see";
reqInfo.ExtraJson = "{\"subChannel\":\"Garena\",\"mediaTagName\":\"me\",\"caption\":\"New Strait Times\"}";
INTLAPI::SendMessage(friendInfo, "Garena");

SendMessage:图片​

调用 SendMessage 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_IMAGE。
玩家需安装并已登录 Garena 应用。

参数:

  • Type
  • ImagePath:图片路径
  • ExtraJson - subChannel, mediaTagName
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png";
reqInfo.ExtraJson = "{\"subChannel\":\"Garena\",\"mediaTagName\":\"me\"}";
INTLAPI::SendMessage(friendInfo, "Garena");

子渠道 Facebook​

可用 Share 将以下内容分享到子渠道 Facebook:

  • Share:文本
  • Share:链接
  • Share:图片
注意

自 Facebook SDK V4.22.0 起,Title、Description、Caption 和 ImagePath 字段在分享链接时不再生效。

Share:文本​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_TEXT。
玩家需本地安装 Facebook 应用。

参数:

  • Type
  • Description:文本内容
  • ExtraJson - subChannel
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "Hello, long time no see";
reqInfo.ExtraJson = "{\"subChannel\":\"Facebook\"}";
INTLAPI::Share(friendInfo, "Garena");

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_LINK。
玩家需本地安装 Facebook 应用。

参数:

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

Share:图片​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_IMAGE。
玩家需本地安装 Facebook 应用。

参数:

  • Type
  • ImagePath:图片路径,图片大小不能超过 12MB
  • ExtraJson - subChannel, mediaTagName
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png";
reqInfo.ExtraJson = "{\"subChannel\":\"Facebook\",\"mediaTagName\":\"me\"}";
INTLAPI::Share(friendInfo, "Garena");

子渠道 LINE​

可用 SendMessage 或 Share 将以下内容分享到子渠道 LINE:

  • SendMessage:链接
  • SendMessage:图片
  • Share:链接
  • Share:图片

调用 SendMessage 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_LINK。
玩家需本地安装 LINE 应用而无需登录 Garena。

参数:

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

SendMessage:图片​

调用 SendMessage 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_IMAGE。
玩家需本地安装 LINE 应用而无需登录 Garena。

参数:

  • Type
  • ImagePath:图片路径
  • ExtraJson - subChannel
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png";
reqInfo.ExtraJson = "{\"subChannel\":\"Line\"}";
INTLAPI::SendMessage(friendInfo, "Garena");

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_LINK。
玩家需本地安装 LINE 应用而无需登录 Garena。

参数:

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

Share:图片​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_IMAGE。
玩家需本地安装 LINE 应用而无需登录 Garena。

参数:

  • Type
  • ImagePath:图片路径
  • ExtraJson - subChannel
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png";
reqInfo.ExtraJson = "{\"subChannel\":\"Line\"}";
INTLAPI::Share(friendInfo, "Garena");
Image: Garena LINE share link

Instagram​

可用 Share 将以下内容分享到 Instagram 动态、故事和消息:

  • Share:图片
  • Share:视频
注意

Instagram 分享功能需要 iOS 15.1 或更高版本。更多详情,请参见 Instagram 应用商店页面。

Share:图片​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_IMAGE。
玩家需本地安装 Instagram 应用。

参数:

  • Type
  • ImagePath:图片路径,可提供本地图片路径或在线 URL
    • 推荐格式:JPEG(640 x 640 像素)
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "/path/to/image";
INTLAPI.Share(reqInfo, INTLChannel.Instagram);

Share:视频​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_VIDEO。
玩家需本地安装 Instagram 应用。

参数:

  • Type
  • MediaPath:视频路径,可提供本地视频路径或在线 URL
    • 格式:MP4
    • 最短时长:3秒,最长时长:10分钟
    • 最小尺寸:640 x 640 像素
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.Share(reqInfo, INTLChannel.Instagram);

LINE​

可用 SendMessage 将以下内容分享到 LINE:

  • SendMessage:文本
  • SendMessage:图片

SendMessage:文本​

调用 SendMessage 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_TEXT。

参数:

  • Type
  • Description:文本内容
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "INTL services";
INTLAPI.SendMessage(reqInfo, INTLChannel.Line);

SendMessage:图片​

调用 SendMessage 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_IMAGE。

参数:

  • Type
  • ImagePath:图片路径,可提供本地图片路径或在线 URL
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png";
INTLAPI.SendMessage(reqInfo, INTLChannel.Line);

错误码​

void CheckThirdCode(INTLAuthResult result)
{
if(result.RetCode == 9999)
{
switch(result.ThirdCode):
{
case 5:
//LineSDKInternalErrorCodeInvalidTokenType
break;
case 2:
//LineSDKInternalErrorCodeMissingConfiguration
break;
case 2001:
// Error happens in the underlying `URLSession`.
break;
default:
// Unknown error code
break;
}
}
}
错误码说明
SUCCESS登录成功
CANCEL用户取消
AUTHENTICATION_AGENT_ERROR用户取消权限认证
SERVER_ERROR服务器错误
NETWORK_ERRORSDK 连接不到 LINE 平台
INTERNAL_ERROR未知错误

更多详情,请参看 Handling errors。

QQ​

QQ 支持以下分享模式:

  • QQ 好友分享:分享给 QQ 好友或群组,使用 SendMessage 方法。
  • QZone 分享:分享到 QZone,使用 Share 方法。

可用 SendMessage 或 Share 将以下内容分享到 QQ:

  • SendMessage:链接
  • SendMessage:图片
  • Share:文本
  • Share:链接
  • Share:图片
  • Share:视频

调用 SendMessage 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_LINK。
玩家需安装并已登录 QQ 应用。

参数:

  • Type
  • Title:标题,最多30个字符
  • Description:描述,最多40个字符
  • Link:URL
  • ThumbPath:缩略图路径
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);
Image: QQ send link

SendMessage:图片​

调用 SendMessage 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_IMAGE。
玩家需安装并已登录 QQ 应用。

参数:

  • Type
  • Title:标题,最多30个字符
  • Description:描述,最多40个字符
  • ImagePath:图片路径,可提供本地图片路径或在线 URL
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.Title = "INTL test";
reqInfo.Description = "INTL description";
reqInfo.ImagePath = "http://mat1.gtimg.com/www/qq2018/imgs/qq_logo_2018x2.png";
INTLAPI.SendMessage(reqInfo, INTLChannel.QQ);

Share:文本​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_TEXT。
玩家需安装并已登录 QQ 应用。

参数:

  • Type
  • Title:标题,最多30个字符
  • Description:描述,最多40个字符
var reqInfo = new INTLFriendReqInfo();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "INTL text sending test";
INTLAPI.Share(reqInfo, INTLChannel.QQ);

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_LINK。
玩家需安装并已登录 QQ 应用。

参数:

  • Type
  • Title:标题,最多30个字符
  • Description:描述,最多40个字符
  • Link:URL
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);
Image: QQ share link

Share:图片​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_IMAGE。
玩家需安装并已登录 QQ 应用。

参数:

  • Type
  • Title:标题,最多30个字符
  • Description:描述,最多40个字符
  • ImagePath:图片路径,可提供本地图片路径或在线 URL
var reqInfo = new INTLFriendReqInfo ();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.Description = "INTL description";
reqInfo.ImagePath = "http://mat1.gtimg.com/www/qq2018/imgs/qq_logo_2018x2.png";
INTLAPI.Share(reqInfo, INTLChannel.QQ);

Share:视频​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_VIDEO。
玩家需安装并已登录 QQ 应用。

参数:

  • Type
  • Title:标题,最多30个字符
  • Description:描述,最多40个字符
  • MediaPath:视频路径,必须是本地视频路径
    • 普通用户,视频大小不能超过 100MB
    • 黄钻用户,视频大小不能超过 1GB,超过 1GB 则报错
var reqInfo = new INTLFriendReqInfo ();
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.Title = "Game Video";
reqInfo.Description = "Golden moment";
reqInfo.MediaPath = "http://v.qq.com/cover/5/53x6bbyb07ebl3s/n0013r8esy6.html";
reqInfo.ThumbPath = "http://mat1.gtimg.com/www/qq2018/imgs/qq_logo_2018x2.png";
INTLAPI.Share(reqInfo, INTLChannel.QQ);
Image: QQ share video

System​

原生的 Android 系统分享功能支持分享文本信息和图片,还支持自定义分享界面。

分享​

每种分享类型都有自己的必填参数,例如文本分享的 Description。如果输入了与功能无关的参数,如文本分享的 Link 或 ImagePath,则无关参数将被忽略。

回调只显示系统分享页面是否成功打开,而不显示分享是否成功

功能必填参数
Share:文本Description
Share:链接Description
Link
Share:图片ImagePath

自定义分享界面​

游戏可以通过调用 Share 方法来自定义系统分享界面,其中的 ExtraJson 使用以下参数设置:

  • rule:
    • 0 = 使用默认系统设置
    • 1 = Include,只显示 contains 和 match 中列出的应用
    • 2 = Exclude,不显示 contains 和 match 中列出的应用
  • contains:要包含的应用名称列表,和 match 一起使用
  • match:要匹配的应用包名列表,和 contains 一起使用

代码示例:

{
"rule":0,
"contains":[
"whatsapp",
"twitter"
],
"match":[
"com.facebook.katana"
]
}
注意

Android 10 及以上版本,自定义分享界面存在两个问题:

  • Include 最多显示3个应用,源代码限制为 ChooserActivity #MAX_EXTRA_INITIAL_INTENTS = 2。这是由于各厂商以各种方式自定义 Android 系统所导致的,Huawei 系统和 Xiaomi 系统则不受限制。

  • Exclude 只有在 AndroidManifest 中配置的包名可以被排除。当合并第三方渠道插件时,与插件相对应的应用包名将被添加到配置中。如需添加其他排除应用包名,建议业务根据下文示例将其添加到配置中。

    <queries>
    <package android:name="com.vkontakte.android" />
    </queries>

上报系统分享事件​

Player Network SDK 上报所选渠道的系统分享事件,业务可在 DD平台 查询相应的数据报表 insight_1000_system_share。当查找报表时,业务可以过滤关键字,例如 QQ,Facebook,VK 等。

关键字段:

  • name:回调名称,例如 vk:com.vkontakte.android.sharing.SharingExternalActivity
  • package_name:频道包名,例如 QQ 的 com.tencent.mqq

Twitter​

注意

Twitter SDK 目前已经不再维护,Twitter 分享时将拉起系统分享。

可用 Share 将以下内容分享到 Twitter:

  • Share:文本
  • Share:链接
  • Share:图片

要将文本和链接类型的 Android 游戏内容分享到 Twitter,玩家无需在设备上安装 Twitter 应用,游戏可使用系统浏览器打开 Twitter 页面,玩家登录后即可分享。但是,如果玩家希望分享图片,则必须在设备上安装并登录 Twitter 应用。

如果玩家拥有多个 Twitter 账号,并在游戏中分享内容前切换了登录账号,则游戏还是会使用之前的账号进行分享。要解决这个问题,可在调用 Share 时在 ExtraJson 中添加 \"login_first\":1 属性,让 Twitter 在每次分享前重新授权(不会改变游戏的当前登录状态),确保内容分享到当前的账号。

当玩家在短时间内重复分享同样的文本或链接时,Twitter 可能会返回 403 错误。

Share:文本​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_TEXT。

参数:

  • Type
  • Description:文本内容
var reqInfo = new INTLFriendReqInfo
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "Hello, long time no see";
INTLAPI.Share(reqInfo, INTLChannel.Twitter);

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_LINK。

参数:

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

Share:图片​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_IMAGE。
玩家需安装并已登录 Twitter 应用。

参数:

  • Type
  • ImagePath:图片路径,可提供本地图片路径或在线 URL
var reqInfo = new INTLFriendReqInfo
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "/path/to/image";
INTLAPI.Share(reqInfo, INTLChannel.Twitter);

VK​

可用 Share 将以下内容分享到 VK:

  • Share:文本
  • Share:链接
  • Share:图片

Share:文本​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_TEXT。

参数:

  • Type
  • Description:文本内容
var reqInfo = new INTLFriendReqInfo
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "Hello, long time no see";
INTLAPI.Share(reqInfo, INTLChannel.VK);

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_LINK。

参数:

  • Type
  • 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:图片​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_IMAGE。

参数:

  • Type
  • ImagePath:图片路径,可提供本地图片路径或在线 URL
var reqInfo = new INTLFriendReqInfo
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "/path/to/image";
INTLAPI.Share(reqInfo, INTLChannel.VK);

WhatsApp​

可用 Share 将以下内容分享到 WhatsApp:

  • Share:文本
  • Share:链接
  • Share:图片
  • Share:视频
注意

分享文本或链接时,无论实际结果如何 Share 将会立即返回成功。

Image: WhatsApp Android

Share:文本​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_TEXT。
玩家需安装并已登录 WhatsApp 应用。

参数:

  • Type
  • Description:文本内容
var reqInfo = new INTLFriendReqInfo
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_TEXT;
reqInfo.Description = "Hello, long time no see";
INTLAPI.Share(reqInfo, "WhatsApp");

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_LINK。
玩家需安装并已登录 WhatsApp 应用。

参数:

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

Share:图片​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_IMAGE。
玩家需安装并已登录 WhatsApp 应用。

参数:

  • Type
  • ImagePath:图片路径
var reqInfo = new INTLFriendReqInfo
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_IMAGE;
reqInfo.ImagePath = "/path/to/image";
INTLAPI.Share(reqInfo, "WhatsApp");

Share:视频​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_VIDEO。
玩家需安装并已登录 WhatsApp 应用。

参数:

  • Type
  • MediaPath:视频路径,可提供本地视频路径或在线 URL
var reqInfo = new INTLFriendReqInfo
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.Share(reqInfo, "WhatsApp");

Youtube​

可用 Share 将以下内容分享到 Youtube:

  • Share:视频

Share:视频​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_VIDEO。

参数:

  • Type
  • MediaPath:视频路径,可提供本地视频路径或在线 URL
var reqInfo = new INTLFriendReqInfo
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.Share(reqInfo, "Youtube");

TikTok​

可用 Share 将以下内容分享到 TikTok:

  • Share:视频

Share:视频​

调用 Share 方法,并将 Type 设置为 INTLFriendReqType.Friend_REQ_VIDEO。
玩家需安装并已登录 TikTok 应用。

参数:

  • Type
  • MediaPath:视频路径,可提供本地视频路径或在线 URL
var reqInfo = new INTLFriendReqInfo
reqInfo.Type = (int)INTLFriendReqType.Friend_REQ_VIDEO;
reqInfo.MediaPath = "/path/to/video";
INTLAPI.Share(reqInfo, "TikTok");

回调​