iOS打开抖音拍摄器
功能介绍
打开抖音拍摄器是指第三方 App 通过接入该功能,让用户可以从 App 直接进入抖音拍摄器。
准备工作
开始之前,已经默认你,完成了接入指南中的申请、配置过程。如果还未完成,请参考 抖音授权分享 SDK 入门指南完成配置。
实现一次分享的步骤如下:
第一步:引入头文件
引入DouyinOpenSDKShare.h这个头文件
#import "DouyinOpenSDKShare.h"
第二步: 构造分享的请求
构造分享到抖音的分享请求
DouyinOpenSDKShareRequest *req = [[DouyinOpenSDKShareRequest alloc] init];
第三步: 设置必传参数
设置分享的类型。
req.shareAction = DouyinOpenSDKShareTypeCapture;
第四步:设置你需要的可选参数
设置分享的话题标签,会在抖音中展示的传入的话题标签。
req.hashtag = @"变脸挑战";
设置分享的上下文,会在一次分享的过程中透传,可自定义一个字符串传入,或者从OpenAPI中申请ShareID。可以从返回的 Resp 中的 state 中获取你在 request 中放设置的 state。
req.state = @“a47e57c6c559acb88a9569da66ee5f65e0f779c9”;
如果传入的 state 字段是通过 OpenAPI 获取的 ShareID 你还可以通过 ShareID 精准的追踪分享的视频是否成功,获取分享视频的数据,如点赞数, 评论数等。具体有关 ShareID 的相关的请看 ShareID 的获取和使用
设置分享携带小程序:通过 Share Request 的扩展参数可以携带小程序信息,会在视频播放时展示。
NSMutableDictionary *m_dic = @{}.mutableCopy;
m_dic[@"identifier"] = self.microAppId?:@"";
m_dic[@"title"] = self.microAppTitle?:@"";
m_dic[@"desc"] = self.microAppDesc?:@"";
m_dic[@"startPageURL"] = self.microAppUrl?:@"";
// 小程序,在分享的视频右下角显示抖音小程序入口, 非必须属性
req.extraInfo = @{@"mpInfo" : m_dic.copy};
注意点: 使用小程序功能需要在开放平台内进行小程序绑定,链接 视频发布时会检查AppID和小程序ID的绑定关系,请确保您使用的小程序已经通过平台正确绑定。 如果您想接入小程序开发,请参考小程序开发
第五步:发送请求
在设置好分享需要带入的信息之后,通过-[DouyinOpenSDKShareRequest sendShareRequestWithCompleteBlock:]发送分享请求,结果将通过CompleteBlock进行回调
[req sendShareRequestWithCompleteBlock:^(DouyinOpenSDKShareResponse * _Nonnull respond) {
NSString *alertString = nil;
if (respond.isSucceed) {
// Share Succeed
} else{
// Share failed
}
}];
分享结果说明: 如果分享失败可通过respond.errCode获取错误码对应枚举值DouyinOpenSDKErrorCode 通过respond.errString会返回报错信息。
错误码对应表:
DouyinOpenSDKErrorCode | errorCode | 描述 |
---|---|---|
DouyinOpenSDKSuccess | 0 | 成功 |
DouyinOpenSDKErrorCodeCommon | -1 | 通用错误类型 <包括网络错误> |
DouyinOpenSDKErrorCodeUserCanceled | -2 | 用户手动取消 |
DouyinOpenSDKErrorCodeSendFailed | -3 | 发送失败 |
DouyinOpenSDKErrorCodeAuthDenied | -4 | 权限错误 |
DouyinOpenSDKErrorCodeUnsupported | -5 | 不支持 |
如果错误码不能方便你定位具体出错的问题,你可以通过 respond.shareState 进行错误定位。需要接入 SDK 2.0.8 以上版本
以下为 Share State 信息的对应关系
DouyinOpenSDKShareRespState | value | 描述 |
---|---|---|
BDOpenPlatformShareRespStateSuccess | 20000 | 分享成功 |
BDOpenPlatformShareRespStateUnknownError | 20001 | 未知或者当前SDK版本未分类错误 |
BDOpenPlatformShareRespStateParamValidError | 20002 | 参数解析错误,获取到的资源和传入的资源类型不一致 |
BDOpenPlatformShareRespStateSharePermissionDenied | 20003 | 没有足够的权限进行操作,分享或授权之前请确认您的App有相关操作权限。可在 open.douyin.com 的管理中心查看你有哪些权限 |
BDOpenPlatformShareRespStateUserNotLogin | 20004 | 用户未登录 |
BDOpenPlatformShareRespStateNotHavePhotoLibraryPermission | 20005 | 抖音没有相册权限 |
BDOpenPlatformShareRespStateNetworkError | 20006 | 抖音网络错误 |
BDOpenPlatformShareRespStateVideoTimeLimitError | 20007 | 视频时长不符合限制 |
BDOpenPlatformShareRespStatePhotoResolutionError | 20008 | 图片资源分辨率不符合限制 |
BDOpenPlatformShareRespTimeStampError | 20009 | 时间戳检查失败 |
BDOpenPlatformShareRespStateHandleMediaError | 20010 | 处理照片资源出错 |
BDOpenPlatformShareRespStateVideoResolutionError | 20011 | 视频分辨率不符合限制 |
BDOpenPlatformShareRespStateVideoFormatError | 20012 | 视频格式不支持 |
BDOpenPlatformShareRespStateCancel | 20013 | 用户取消分享 |
BDOpenPlatformShareRespStateHaveUploadingTask | 20014 | 用户有未完成编辑的发布内容 |
BDOpenPlatformShareRespStateSaveAsDraft | 20015 | 用户将分享内容存储为了草稿或用户账号不允许发布视频 |
BDOpenPlatformShareRespStatePublishFailed | 20016 | 发布视频失败 |
BDOpenPlatformShareRespStateMediaInIcloudError | 21001 | 从 iCloud 同步资源出错 |
BDOpenPlatformShareRespStateParamsParsingError | 21002 | 传递的参数处理错误 |
BDOpenPlatformShareRespStateGetMediaError | 21003 | 获取资源错误资源可能不存在 |