android打开抖音拍摄页

抖音版本为12.6.0及其以上支持打开抖音拍摄页。

在使用这个功能之前,必须要安装抖音

第一步:权限申请

向抖音短视频申请你的clientkey及相关权限请到开发者应用登记页面进行申请,申请后将获得clientkey。之后通过clientkey为应用申请相关的权限,如打开抖音拍摄页(aweme.capture)等。审核通过后即可使用相关的功能。

第二步:集成sdk

参考Android接入指南

第三步:接入步骤

1、初始化

在Application中,初始化 DouYinOpenApiFactory

    @Override
    public void onCreate() {
        super.onCreate();
        String clientkey = "[Client Key]"; // 修改为在开发者应用登记页面申请的clientkey
        DouYinOpenApiFactory.init(new DouYinOpenConfig(clientkey));
    }

2、Manifest中申请权限,注册接收回调activity

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <!--如果第三方自定义了接收回调的activity则可以跳过此步骤-->
    <!--置于application结点下-->
    <activity android:name=".douyinapi.DouYinEntryActivity"
        android:launchMode="singleTask"
        android:taskAffinity="你的包名"
        android:exported="true">
    </activity>

3、打开抖音拍摄页

    DouYinOpenApi douyinOpenApi = DouYinOpenApiFactory.create(this);
    OpenRecord.Request request = new OpenRecord.Request();

    // 添加hashtag
    //ArrayList<String> tags = new ArrayList<>();
    //if (tags.size() > 0) {
    //    request.mHashTagList = tags;
    //}

    // 如有需求可添加小程序,需申请小程序权限
    //  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;

    // 填写你的shareid,如果无则不填写
    request.mState ="state";     
    if(douyinOpenApi !=null&&douyinOpenApi.isSupportOpenRecordPage()) {  
        // 判断抖音版本是否支持打开抖音拍摄页
        douyinOpenApi.openRecordPage(request);
    }

发布携带小程序相关:

点击开通分享内容携带小程序 注意:抖音 6.7.0 以上版本可用

挂载小程序请先完成申请->申请及使用说明

4、接收发布视频回调

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也加入免混淆清单

第四步:使用openapi获取发布在抖音的视频

详情请查看这篇文档

第五步:错误码

错误码描述
20002无效请求参数
20003打开拍摄页无权限,请在官网申请权限
20004用户手动取消登录
20005用户未授权使用相册
20006请求授权时网络出错
20013用户手动取消发布
20015用户存为草稿
20019观看直播时不允许打开拍摄页
20020直播时不允许打开拍摄页
20021插件下载失败
诚邀您对本文档易读易用性进行评价
好用
不好用