“账号矩阵”运营是一种账号运营的高阶玩法,指一个运营主体同时开设多个平台多个账号利用品牌联动的形式来实现账号之间的相关引流,以账号组的形式实现企业营销价值最大化。那么运营多个账号,短视频平台内容是核心,势必要招募多个剪辑人员及配备相应的运营人员来配合实现这个效果,对企业来说运营成本就会增加很多。“矩阵号创作工具”就属于企业运营矩阵号过程中比较有利的运营工具了。不仅可以实现短视频的智能剪辑,还可以实现视频的一键分发,及充当在线客服等功能,下面小编来分享一下抖音矩阵号管理系统开发及布局流程
那么矩阵号系统服务商应该如何选择呢?
企业在选择服务商时,无论是考虑自用还是考虑加盟服务商,都要考评服务商是否有相关开发资质,能力证明等,除此之外,功能的完善程度也是非常重要的考评维度。
1.开发资质
矩阵号完整开发流程:抖音开放平台申请服务商——申请开放平台应用——申请对应应用权限
2. 开发团队
有完善的开发团队,及售后团队,可以保障产品的持续更新迭代及售后服务支持,如果只是一个单纯地软件,相信没有专业的运营团队,企业也是很难成功运营的。
3. 功能完善
从账号运营,视频制作,内容分发,到数据追踪,智能客服需要是完整的营销全链路闭环体系,
常用工具:
沙盒环境
/sandbox/webhook/event/send/ 沙盒环境是一种测试环境,主要目的是帮助开发者快速体验开放平台现有功能。
沙盒APP
每个正式版APP都可以创建一个沙盒APP,沙盒APP默认拥有所有scope权限,且对沙盒APP所做的修改不会影响正式版APP,如修改回调地址,订阅事件。
可以在管理中心的应用详情页创建沙盒APP。
沙盒用户
普通抖音用户扫码授权后就成为沙盒用户,沙盒APP仅能获取沙盒用户的基本用户信息。
接口调用
接口调用参考线上各个接口,传入沙盒用户的openId与token即可,调用接口返回的都是MOCK数据。
H5 分享 Schema 生成示例
Python
from urllib.parse import urlencode
baseUrl = "snssdk1128://openplatform/share?"
param = {
"client_key": CLIENT_KEY,
"nonce_str": nonce_str,
"timestamp": timestamp
"signature": signature,
"state": share_id,
"share_type": "h5",
"micro_app_info": json.dumps({
"appId": "小程序appId",
"appTitle": "小程序title",
"description": "小程序描述语",
"appUrl": "pages/movie",
}),
"image_path": "https://sf3-cdn-tos.douyinstatic.com/obj/douyin-open-static/tiktok.open/home/d_logo.png",
"need_download": 1,
"share_to_publish": 1,
"hashtag_list": json.dumps(["hashtag1", "hashtag2", "hashtag3", "天气不错"])
}
final_url = baseUrl + urlencode(param)
Java
URIBuilder uri = new URIBuilder("snssdk1128://openplatform/share");
uri.addParameter("client_key", CLIENT_KEY);
uri.addParameter("state", share_id);
uri.addParameter("nonce_str", nonce_str);
uri.addParameter("timestamp", timestamp);
uri.addParameter("signature", signature);
uri.addParameter("share_type", "h5");
uri.addParameter("image_path", "https://sf3-cdn-tos.douyinstatic.com/obj/douyin-open-static/tiktok.open/home/d_logo.png");
uri.addParameter("need_download", "1");
uri.addParameter("share_to_publish", "0");
JSONArray hashTags = new JSONArray();
hashTags.put("hashtag1");
hashTags.put("hashtag2");
hashTags.put("hashtag3");
hashTags.put("天气不错JAVA");
uri.addParameter("hashtag_list", hashTags.toString());
JSONObject microAppInfo = new JSONObject();
microAppInfo.put("appId", "小程序appId");
microAppInfo.put("appTitle", "小程序title");
microAppInfo.put("description", "小程序描述语");
microAppInfo.put("appUrl", "pages/movie/index");
uri.addParameter("micro_app_info", microAppInfo.toString());
String url = uri.build().toString();
JavaScript
const url = new URL("snssdk1128://openplatform/share");
var query = url.searchParams
query.append("client_key", CLIENT_KEY);
query.append("state", share_id);
query.append("nonce_str", nonce_str)
query.append("timestamp", timestamp)
query.append("signature", signature)
query.append("share_type", "h5")
query.append("image_path", "https://sf3-cdn-tos.douyinstatic.com/obj/douyin-open-static/tiktok.open/home/d_logo.png")
query.append("share_to_publish", "0")
const hashTags = ["hashtag1", "hashtag2", "hashtag3", "天气不错"];
query.append("hashtag_list", JSON.stringify(hashTags))
query.append("micro_app_info", JSON.stringify({
"appId": "小程序appid",
"appTitle": "小程序title",
"description": "小程序描述语",
"appUrl": "pages/movie/index",
}))
注意事项
- 签名用的nonce_str和timestamp必须与schema中的nonce_str和timestamp相同。
- 想获取用户分享结果,请获取share_id将其填写到state字段
功能展示样例
//计算分页
$active_list_all = $Video_model->getCount($where);
$page_libs = new Libs_Pagination_Paginator($active_list_all,$this->count,'jquery',true);
$pageHtml = $page_libs->render();
$this->output['add_time_range'] = $add_time_range;
$this->output['keyword_type'] = $keyword_type;
$this->output['keyword'] = $keyword;
$this->output['video_list'] = $video_list;
$this->output['pageHtml'] = $pageHtml;
$video_mixed_mode = plum_parse_config('project_mixed_mode', 'dydqt/project');
$this->output['video_mixed_mode'] = $video_mixed_mode;
$this->output['progress_line'] = [
20 => ['color' => 'red', 'tip' => '创建创意工程已完成'],
40 => ['color' => 'red', 'tip' => '选择混剪模式已完成'],
50 => ['color' => 'orange', 'tip' => '添加音视频素材未完成'],
60 => ['color' => 'orange', 'tip' => '添加音视频素材已完成'],
70 => ['color' => 'blue', 'tip' => '视频混剪组合已完成'],
80 => ['color' => 'blue', 'tip' => '视频混剪组合已完成'],
90 => ['color' => 'green', 'tip' => '视频缓存已完成'],
100 => ['color' => 'green', 'tip' => '工程所有步骤已完成'],
];
if ($this->front_module == 'eui') {
$this->displaySmarty('dspui/video/videoList.html');
} else {
$this->displaySmarty('dydqtshoppc/video/videoList.html');
}
}
/*
* 创建工程项目
*/
public function createProjectAction() {
$this->useLayout('dydqtshoppc-head.html');
$id = $this->request->getIntParam('id');
//获取视频信息
$video_model = new App_Model_Douyin_MysqlVideoStorage();
$video_info = $video_model->getRowByIdSid($id, $this->sid);
$use_platform = empty($video_info['dv_use_platform']) ? [] : json_decode($video_info['dv_use_platform'], 1);
if (!empty($video_info)) {
$video_cfg = empty($video_info['dv_platform']) ? null : json_decode($video_info['dv_platform'], 1);
}
//视频混剪模式
$video_mixed_mode = plum_parse_config('project_mixed_mode','dydqt/project');
$this->output['video_info'] = $video_info;
$this->output['use_platform'] = $use_platform;
$this->output['video_cfg'] = empty($video_cfg) ? null : $video_cfg;
$this->output['video_mixed_mode'] = $video_mixed_mode;
$this->output['font_map'] = (new App_Plugin_Ffmpeg_VideoPlugin())->getFontMap();
$color_list = plum_parse_config('color_list', 'config');
$this->output['color_list'] = $color_list;
//火山引擎、腾讯云配音
$huoshan_vcn = plum_parse_config('hsyq_vcn', 'system');
$tencent_vcn = plum_parse_config('txy_vcn', 'system');
$this->output['audio_vcn'] = empty($tencent_vcn) ? $huoshan_vcn : $tencent_vcn;
$this->output['platform_list'] = plum_parse_config('platform_list', 'dydqt/project');
$this->displaySmarty('dydqtshoppc/video/create-project.tpl');
}