抖音开放平台Logo
开发者文档
控制台

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​

提供了一个完整的接入示例 Demo,你可以通过 Demo 直观地查看接入方法。​