【创作平台】政务媒体帐号矩阵--技术设计
一、需求背景
针对政务媒体类账号的需要,为提升政务媒体号的创作能力,上线初版母帐号监督管理子帐号能力。
【创作平台-垂类能力】政务媒体帐号矩阵需求一期
二、需求明细
能力提供对象:cert_type = 1 机构认证 or org_type=1||2 媒体 政府的用户;
创作服务平台--授权管理入口,三个模块
成员管理(即现有的授权帐号管理&待接受授权模块)
数据统计
根据时间区间,分页展示:已被管理的帐号的抖音号、粉丝量、粉丝新增,发布量、播放量、点赞量、评论量,以及总量数据。
数据可导出至Excel
内容管理
根据时间区间,分页展示:被管理帐号的视频(发布的抖音号)、点赞量、发布量、发布时间
视频可播放,下发share_url
导出excel
视频可「撤回」,即删除。删除后站内信提示。
运营管理后台
新增创作服务平台--账号管理模块
账号列表显示:抖音ID、认证状态、个性签名、上级帐号列表及操作模块;
可添加下级账号,这里属于「强行接管」,不需要下级账号接受(站内信通知上级账号、下级账号)
可删除下级账号(站内信通知上级账号、下级账号)
三、方案

创作服务平台
入驻流程
机构入驻时,creator_user表里标识org_type,是否为政务媒体
存量数据处理
数据统计
获取子账号列表
批量获取账号用户名、抖音号
批量获取账号数据
Excel导出
内容管理
循环获取用户发布视频
批量获取视频数据
Excel导出
删除视频
站内信
运营后台
账号列表
增加、删除子账号
站内信
四、依赖方对接及IDL定义
获取用户发布视频列表:ies.item.list::GetUserPublishItemList(按时间段返回itemId和发布时间score,count最多100,hasMore判断)
批量获取用户的粉丝量、粉丝新增、发布量、播放量、点赞量、评论量、抖音号
批量获取视频的点赞量、播放量
批量获取用户名、抖音号:aweme.pack.user
判断账号是否为政务媒体:aweme.user.cert::MulGetUserCertInfo返回的CertType=1&&OrganizationType=1||2
五、客户端对接及IDL定义
创平
分页、按时间区间获取子账号数据
syntax = "proto2";
package com.ss.ugc.aweme;
//@api.specification : 分页排序获取授权子账号的数据列表
//@api.http_method : get
//@api.url : "/aweme/v1/creator/permission/account/data/list"
//@api.psm : aweme.open.creator_api
//@api.serializer : json
//@api.need_common_params : true
message AccountData{
required string unique_id = 1;//抖音号
required int64 follow_all = 2;//粉丝量
required int64 follow_add = 3;//粉丝新增
required int64 publish = 4;//发布量
required int64 play = 5;//播放量
required int64 like = 6;//点赞量
required int64 comment = 7;//评论量
}
message SumAccountData{
required int64 follow_all = 1;//粉丝量
required int64 follow_add = 2;//粉丝新增
required int64 publish = 3;//发布量
required int64 play = 4;//播放量
required int64 like = 5;//点赞量
required int64 comment = 6;//评论量
}
message aweme_v1_creator_permission_confer_account_data_list_request{
enum SortType{
DEFAULT = 1;//默认,按授权接受时间
FOLLOW_ALL = 2;//粉丝量
ADD_FOLLOW = 3;//粉丝新增
PUBLISH = 4;//发布量新增
PLAY = 5;//播放量新增
LIKE = 6;//点赞量新增
COMMENT = 7;//评论量新增
}
required int64 begin_date = 1; //开始日期
required int64 end_date = 2; //结束日期
required SortType sort_type = 3;//排序方式
required bool desc = 4;//排序方向
required int32 page = 5;//页码
required int32 page_size = 6;//页长
}
message aweme_v1_creator_permission_confer_account_data_list_response{
required int32 status_code = 1;
optional string status_msg = 2;
repeated AccountData list = 3;
required int32 total_num = 4; // 总条数
required SumAccountData sum_data = 5;//总计
required bool has_more = 6;//是否有下一页数据
}
excel导出子账号数据
syntax = "proto2";
package com.ss.ugc.aweme;
//@api.specification : 导出授权子账号的数据列表
//@api.http_method : get
//@api.url : "/aweme/v1/creator/permission/account/data/export"
//@api.psm : aweme.open.creator_api
//@api.serializer : json
//@api.need_common_params : true
message aweme_v1_creator_permission_confer_account_data_export_request {
required int64 begin_date = 1; //开始日期
required int64 end_date = 2; //结束日期
}
message aweme_v1_creator_permission_confer_account_data_export_response {
required int32 status_code = 1;
optional string status_msg = 2;
}
分页、按时间区间获取子账号视频数据
syntax = "proto2";
package com.ss.ugc.aweme;
//@api.specification : 分页排序获取授权子账号的发布视频数据列表
//@api.http_method : post
//@api.url : "/aweme/v1/creator/permission/account/video/list"
//@api.psm : aweme.open.creator_api
//@api.serializer : json
//@api.need_common_params : true
message VideoData{
required string avatar_url = 1;//头像
required string nickname = 2;//昵称
required string unique_id = 3;//抖音号
required int64 follow_add = 4;//粉丝量新增
required int64 play_add = 5;//播放量新增
required int64 like_add = 6;//点赞量新增
required int64 comment_add = 7;//评论量新增
required string publish_time = 8;//发布时间
required string share_url = 9;//视频分享链接
required string item_id = 10; //加密的视频id
required string item_title = 11;//视频标题
required string item_cover = 12;//视频封面
required bool allow_retract = 13;//是否允许上级账号撤回该视频
}
message aweme_v1_creator_permission_confer_account_video_list_request{
enum SortType{
DEFAULT = 1;//发布时间
PLAY = 2;//播放量
LIKE = 3;//点赞量
FOLLOW = 4;//粉丝量
COMMENT = 5;//评论量
}
required int64 begin_date = 1; //开始日期
required int64 end_date = 2; //结束日期
required SortType sort_type = 3;//排序方式
required bool desc = 4;//排序方向
required int32 page = 5;//页码
required int32 page_size = 6;//页长
}
message aweme_v1_creator_permission_confer_account_video_list_response{
required int32 status_code = 1;
optional string status_msg = 2;
repeated VideoData list = 3;
required int32 total_num = 4; // 总条数
required bool has_more = 6;//是否有下一页数据
}
excel导出子账号视频数据
syntax = "proto2";
package com.ss.ugc.aweme;
//@api.specification : 导出授权子账号的视频数据列表
//@api.http_method : get
//@api.url : "/aweme/v1/creator/permission/account/video/export"
//@api.psm : aweme.open.creator_api
//@api.serializer : json
//@api.need_common_params : true
message aweme_v1_creator_permission_confer_account_video_export_request {
required int64 begin_date = 1; //开始日期
required int64 end_date = 2; //结束日期
}
message aweme_v1_creator_permission_confer_account_video_export_response {
required int32 status_code = 1;
optional string status_msg = 2;
}
删除子账号视频
syntax = "proto2";
package com.ss.ugc.aweme;
//@api.specification : 撤回授权子账号的发布视频
//@api.http_method : post
//@api.url : "/aweme/v1/creator/permission/account/video/retract"
//@api.psm : aweme.open.creator_api
//@api.serializer : json
//@api.need_common_params : true
message aweme_v1_creator_permission_confer_account_video_delete_request {
required string item_id = 1; //加密的视频id
}
message aweme_v1_creator_permission_confer_account_video_delete_response {
required int32 status_code = 1;
optional string status_msg = 2;
}
运营后台
创平政媒账号列表
https://code.tencent.org/cpputil/service_rpc_idl/blob/master/aweme/open_platform/op.thrift
GetCreatorMatrix
管理下级账号
https://code.tencent.org/cpputil/service_rpc_idl/blob/master/aweme/open_platform/op.thrift
OperateConferredAccount
QA测试用例
https://iesqacase.tencentance.net/case_manager/page/regression/get_case_editor?case=8995









