Android 打开抖音拍摄页收藏我的收藏
收藏
我的收藏背景信息
目前支持开发者直接拉起抖音拍摄页,使用抖音的能力进行视频发布。
前提条件
- •在使用这个功能之前,用户设备上需安装抖音。
- •请确保您的抖音为 12.6.0 及以上版本。
操作步骤
第一步:准备环境
- 1.进入开发者应用登记页面,向抖音短视频申请你的 clientkey 及相关权限,获取 clientkey。具体操作,请参见创建移动应用和网站应用。确保在应用的管理后台配置了正确包名等开发信息。
- 2.通过 clientkey 为应用申请相关的权限,如打开抖音拍摄页(aweme.capture)等。
- 3.等待审核通过后,即可使用相关的功能。
第二步:接入
- 1.使用前,在 Application 中初始化 DouYinOpenApiFactory。
@Override public void onCreate() { super.onCreate(); String clientkey = "[Client Key]"; // 修改为在开发者应用登记页面申请的clientkey DouYinOpenApiFactory.init(new DouYinOpenConfig(clientkey)); }
- 2.在 Manifest 中申请权限,注册接收回调 activity。
<!--如果第三方自定义了接收回调的activity则可以跳过此步骤--> <!--置于application结点下--> <activity android:name=".douyinapi.DouYinEntryActivity" android:launchMode="singleTask" android:taskAffinity="你的包名" android:exported="true"> </activity>
第三步:拉起抖音拍摄页
DouYinOpenApi douyinOpenApi = DouYinOpenApiFactory.create(this); OpenRecord.Request request = new OpenRecord.Request(); request.mState = "xxx";//建议传入OpenAPI中申请的ShareID,分享结果会通过 Webhooks 进行回调。更多信息,请参见查询视频分享结果及数据。 // request.callerLocalEntry = DouYinEntryActivity.class.getCanonicalName(); //自定义回调Activity // 添加hashtag ArrayList<String> tags = new ArrayList<>(); if (tags.size() > 0) { request.mHashTagList = tags; } if(douyinOpenApi !=null&&douyinOpenApi.isSupportOpenRecordPage()) { // 判断抖音版本是否支持打开抖音拍摄页 douyinOpenApi.openRecordPage(request); }
第四步: 接收发布视频回调
public class DouYinEntryActivity extends Activity implements IApiEventHandler { DouYinOpenApi douYinOpenApi; @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); douYinOpenApi = DouYinOpenApiFactory.create(this); douYinOpenApi.handleIntent(getIntent(), this); } @Override public void onReq(BaseReq req) { } @Override public void onResp(BaseResp resp) { if (resp instanceof OpenRecord.Response) { Toast.makeText(this, "error code:" + resp.errorCode + " error Msg:" + resp.errorMsg, Toast.LENGTH_LONG).show(); finish(); } } @Override public void onErrorIntent(@Nullable Intent intent) { // 错误数据 Toast.makeText(this, "Intent出错", Toast.LENGTH_LONG).show(); } }
注意:若你的应用的代码存在混淆情况,调起抖音拍摄页之后,不能拿到拍摄结果的回调,请将你接收回调的 activity(DouYinEntryActivity 或者您自定义的回调 activity)也加入免混淆清单。
错误码
错误码 | 描述 |
20002 | 无效请求参数 |
20003 | 打开拍摄页无权限,请在官网申请权限 |
20004 | 用户手动取消登录 |
20005 | 用户未授权使用相册 |
20006 | 请求授权时网络出错 |
20013 | 用户手动取消发布 |
20015 | 用户存为草稿 |
20019 | 观看直播时不允许打开拍摄页 |
20020 | 直播时不允许打开拍摄页 |
20021 | 插件下载失败 |
携带额外参数
设置分享内容的标题
目前支持设置标题,同时标题中支持插入话题和@用户。指定的话题会展现在发布页面,用户可自行删除该话题,该话题类型支持商业化话题和普通话题。发布后同抖音原生话题没有差别。
OpenRecord.Request request = new OpenRecord.Request(); ShareParam shareParam = new ShareParam(); request.shareParam = shareParam; TitleObject titleObject = new TitleObject(); shareParam.titleObject = titleObject; titleObject.title = "分享标题"; HashtagTitleMarker hashtagTitleMarker = new HashtagTitleMarker(); hashtagTitleMarker.name = "hashtagTitleMarker"; hashtagTitleMarker.start = 1; //插入标题的位置索引 titleObject.addMarker(hashtagTitleMarker); MentionTitleMarker mentionTitleMarker = new MentionTitleMarker(); mentionTitleMarker.openId = "xxx"; mentionTitleMarker.start = 5; titleObject.addMarker(mentionTitleMarker);
注意:
- 1.标题总长度不超过 500。
- 2.分享的话题审核依旧遵循抖音的审核逻辑,强烈建议第三方谨慎拟定话题名称,避免强导流行为。
设置小程序锚点
支持第三方分享内容至抖音时,携带相关小程序信息,成功发布视频后,在视频左下角带有小程序入口。
Share.Request request = new Share.Request(); MicroAppInfo mMicroInfo = new MicroAppInfo(); mMicroInfo.setAppTitle("小程序title"); mMicroInfo.setDescription("小程序描述"); mMicroInfo.setAppId("ttef9b992670b151ec"); mMicroInfo.setAppUrl("pages/movie/index?utm_source=share_wxapp&cityId=10&cityName=%E4%B8%8A%E6%B5%B7"); request.mMicroAppInfo = mMicroInfo;
注意:使用分享携带小程序,请在
<strong>build.gradle</strong>
中添加 gson 依赖,否则会报错找不到 gson 文件。implementation 'com.google.code.gson:gson:2.9.0'
目前携带的小程序需跟应用为同一主体下才能挂载成功。如果非同主体请使用推广任务。只需要在之前的基础上传入额外的任务信息,目前该能力需要抖音版本大于 26.5 版本。小程序推广计划参数详情请点击这里。
// 塞入小程序任务信息 request.extras = Bundle() request.extras?.putLong("micro_app_task_id", taskId) //小程序任务id request.extras?.putString("agent_client_key", agentClientKey) //撮合中介
设置 Poi 锚点
目前支持第三方内容传入内容至抖音时携带 poi 信息,在发布页可以看到 poi 信息,成功发布视频后,在视频左下角带有 poi 入口。
Share.Request request = new Share.Request(); request.newShare = true; ShareParam shareParam = new ShareParam(); request.shareParam = shareParam; shareParam.poiId = "xxx"; //poiId
注:如果同时传入小程序和 poi 锚点信息,会优先采用小程序信息。
使用 OpenAPI 获取发布在抖音的视频结果
request.mState = "xxx";//建议传入OpenAPI中申请的ShareID,分享结果会通过 Webhooks 进行回调。更多信息,请参见查询视频分享结果及数据。
示例 Demo