微信小程序

最近更新时间:2020-07-06 10:09:29

以下视频将为您讲解移动直播 SDK 如何快速集成到微信小程序:

一、注册小程序

注册小程序请单击 微信公众平台 ,完成注册后,在小程序管理页面的【开发】>【基本配置】中记录下小程序 AppID 供后面使用。

注意:

必须以非个人主体类型进行注册,否则无法开通 <live-pusher> 和 <live-player> 这两个标签。

二、开通标签使用权限

出于政策和合规的考虑,微信暂时没有放开所有小程序对 <live-pusher><live-player> 标签的支持:

  • 目前支持这两个标签的类目如下表格所示(只有非个人主体才有以下类目):
一级类目/主体类型二级类目资质要求类目适用范围小程序直播内容场景
社交 直播 (3选1):
1.《信息网络传播视听节目许可证》
2.《网络文化经营许可证》(经营范围含网络表演)
3.《统一社会信用代码》 及 《情况说明函件》(适用于政府主体)
适用于提供在线直播等服务
注:
1.如提供时政信息服务,需补充:时政信息类目
2.选择该类目后首次提交代码审核,需经当地互联网主管机关审核确认,预计审核时长7天左右
涉及娱乐性质,如明星直播、生活趣事直播、宠物直播等。选择该类目后首次提交代码审核,需经当地互联网主管机关审核确认,预计审核时长7天左右
教育 在线视频课程 (5选1):
1. 《事业单位法人证书》(适用公立学校)
2. 区、县级教育部门颁发的《民办学校办学许可证》(适用培训机构)
3. 《信息网络传播视听节目许可证》
4. 全国校外线上培训管理服务平台备案
5. 教育部门的批准文件
适用于教育行业提供,网课、在线培训、讲座等教育类视频/直播等服务 网课、在线培训、讲座等教育类直播
医疗 互联网医院 (2选1):
1. 卫生健康部门的《设置医疗机构批准书》;
2. 合作医院的《医疗机构执业许可证》与执业登记机关的审核合格文件
适用于互联网医院主体/医疗服务平台提供在线看诊、疾病咨询等线上医疗服务 问诊、大型健康讲座等直播
公立医疗机构 《医疗机构执业许可证》与《事业单位法人证书》 适用于公立医疗机构提供的就医、健康咨询/问诊、医疗保健信息等服务
金融 银行 (2选1):
1.《金融许可证》
2.《金融机构许可证》
适用于提供银行业务在线服务或交易等服务 金融产品视频客服理赔、金融产品推广直播等
信托 (2选1):
1.《金融许可证》
2.《金融机构许可证》
适用于提供信托理财业务在线服务或交易等服务
公募基金 (3选1):
1.《经营证券期货业务许可证》且业务范围必须包含“基金”
2.《基金托管业务许可证》
3.《基金销售业务资格证书》
适用于基金管理公司从事股票、债券等金融工具的投资服务
私募基金 (2选1):
1.《私募基金备案证明》
2.《私募投资基金管理人登记证书》
仅适用于私募基金展示、介绍、咨询等服务
注:暂不支持涉及私募产品公开募集或在线交易等服务
证券/期货 《经营证券期货业务许可证》 适用于提供证券资讯、证券咨询、证券期货经营等的在线服务
证券、期货投资咨询 (2选1):
1.《证券投资咨询业务资格证书》
2.《经营证券期货业务许可证》
适用于提供证券、期货投资等在线咨询服务
保险 (8选1):
1.《保险公司法人许可证》
2.《经营保险业务许可证》
3.《保险营销服务许可证》
4.《经营保险代理业务许可证》
5.《经营保险经纪业务许可证》
6.《经营保险公估业务许可证》
7.《经营保险资产管理业务许可证》
8.《保险兼业代理业务许可证》
适用于提供保险业务在线服务或交易等服务
征信业务 (2选1):
1.经营个人征信业务:《个人征信业务经营许可证》、《营业执照》
2.经营企业征信业务:经所在地的中国人民银行及其派出机构备案的《企业征信业务经营备案证》、《营业执照》
适用于银行或征信机构提供征信业务服务,包括:信贷记录、逾期记录、失信人查询等
新三板信息服务平台 全国中小企业股份转让系统有限责任公司的书面许可与《非经营性互联网信息服务备案核准》 适用于提供新三板信息行情资讯等服务
股票信息服务平台(港股/美股) 《非经营性互联网信息服务备案核准》 适用于提供港股、美股行情资讯、行情分析等服务
注:如提供股票交易服务,需补充:金融业-证券/期货类目
消费金融 银监会核准开业的审批文件与《金融许可证》与《营业执照》 适用于提供消费金融线上服务或交易等服务
汽车 汽车预售服务 (3选1):
1.汽车厂商:《营业执照》与《工信部道路机动车辆生产企业准入许可》
2.汽车经销商/4s店:《营业执照》与《厂商授权销售文件》与《工信部道路机动车辆生产企业准入许可》
3.下属子/分公司:《营业执照》与《工信部道路机动车辆生产企业准入许可》与《股权关系证明函》(含双方盖章)
适用于提供汽车在线预付款等服务
注:平台暂不支持在线整车销售,如涉及整车销售服务,建议改为价格指导或移除相关功能
汽车预售、推广直播
政府主体帐号 - - - 政府相关工作推广直播、领导讲话直播等
工具 视频客服 - 适用于提供企业售后客服一对一视频等服务 不涉及以上几类内容的一对一视频客服服务,如企业售后一对一视频服务等
说明:

可申请直播标签的小程序类目以 微信文档 说明为主,小程序类目的资质要求详见 非个人主体类目申请

  • 符合类目要求的小程序,需要在小程序管理后台的【开发】>【接口设置】中自助开通推拉流标签的使用权限,如下图所示:
说明:

如果以上设置都正确,但小程序依然不能正常工作,可能是微信内部的缓存没更新,请删除小程序并重启微信后,再进行尝试。

三、开通云直播服务

1. 申请开通视频直播服务

进入 云直播管理控制台 开通云直播服务。

2. 添加自有域名

  • 进入【域名注册】进行 域名购买。您也可以通过其他域名服务商购买域名。
  • 使用腾讯云的 域名备案 对已有域名进行备案。您也可以在其他域名服务商那进行备案。
    注意:

    根据国家工信部规定,域名必须进行备案,且备案时长需几个工作日,建议您提前进行备案,更多网站备案信息请参见 网站备案。新备案成功的域名需要1天左右的时间同步到腾讯云服务器,添加该类域名时可能会显示域名未备案。

  • 选择云直播控制台的【域名管理】>【添加域名】添加您已备案后的推流域名和播放域名。
    说明:

    • 添加成功后,云直播会生成一个对应的 CNAME 域名,您可通过域名管理的域名列表进行查看。
    • 域名列表里面有一个xxxx.livepush.myqcloud.com的推流域名,这个是我们为您提供的测试域名,可以通过这个域名进行推流测试,但强烈不建议您在正式的业务中使用这个域名作为推流域名。

3. 域名 CNAME

在您添加域名成功后,您的域名需要指向腾讯云直播的云服务集群。根据域名列表中的提示,您需要在您注册的域名服务商处将域名解析地址 CNAME 到云直播控制台的域名列表中对应域名的 CNAME 地址,CNAME 添加方法请参见 CNAME 配置

注意:

  • CNAME 成功后通常需要一定时间生效,CNAME 不成功是无法使用腾讯云直播服务的。
  • 域名 CNAME 成功后,在云直播控制台的 域名管理 列表中可见域名 CNAME 地址状态符号会由变成
  • 如果 CNAME 操作后,检测始终不成功,建议您向您的域名注册服务商咨询。

四、开通即时通信 IM 服务

进入 即时通信 IM 管理控制台,如果还没有开通服务,单击【立即开始】即可。如果是新认证的腾讯云账号,则即时通信 IM 的应用列表是空的。更多详情请参见 一分钟跑通 Demo

五、开通房间管理服务

1. 创建应用

进入云直播控制台的【直播SDK】>【应用管理】页面,单击【创建应用】填写应用信息。完成创建后,您将会在应用列表中看到您创建的应用,记录其 SDKAppID 信息,如下图所示:

说明:

该操作的目的是创建一个即时通信 IM 应用,并将当前云直播账号和该即时通信 IM 应用绑定起来。即时通信 IM 应用能为小直播 App 提供聊天室和连麦互动的能力。

2. 查看并拷贝加密密钥

如果在 创建应用 中已经成功创建了应用,单击操作栏的【管理】,选择【应用管理】,并单击【查看密钥】,即可获取加密密钥。

3. 购买相关资源包

小程序源码中的 <mlvb-live-room> 组件 为开发者提供了腾讯云直播连麦的能力,具有低卡顿、低延时和易接入等特点。如果您希望用它来快速实现直播连麦应用,那么您需要购买直播流量资源包移动直播连麦资源包即时通信 IM 套餐包。详细计费说明请查看 云直播计费说明即时通信 IM 定价

六、下载 Demo 源码

访问 Github,获取小程序 Demo 源码。

七、粘贴密钥到 Demo 工程的指定文件中

我们在各个平台的 Demo 的源码工程中都提供了一个叫做GenerateTestUserSig的文件,它可以通过 HMAC-SHA256 算法本地计算出 UserSig,用于快速跑通 Demo。

语言版本 适用平台 GenerateTestUserSig 的源码位置
Objective-C iOS Github
Java Android Github
Javascript 小程序 Github

您只需要将 步骤5 中获得的 SDKAppID 和加密密钥拷贝到文件中的指定位置即可,如下所示:

注意:

安全警告:本地计算 UserSig 的做法虽然能够工作,但仅适合于调试 Demo 的场景,不适用于线上产品。

这是因为客户端代码中的 SECRETKEY 很容易被反编译逆向破解,尤其是 Web 端的代码被破解的难度几乎为零。一旦您的密钥泄露,攻击者就可以计算出正确的 UserSig 来盗用您的腾讯云流量。

安全方案:将 UserSig 的计算代码和加密密钥放在您的业务服务器上,然后由 App 按需向您的服务器获取实时算出的 UserSig。由于攻破服务器的成本要远高于破解客户端 App,所以服务器计算的方案能够更好地保护您的加密密钥。

八、编译运行

  1. 打开 微信开发者工具 后,选择【小程序】菜单栏,然后单击新建图标,选择【导入项目】。
  2. 输入小程序 AppID(注意:不是上面的 SDKAppID),单击【导入】。
  3. 单击【预览】,生成二维码,通过手机微信扫码二维码即可进入小程序。
    注意:

    • 小程序 <live-player> 和 <live-pusher> 标签需要在手机微信上才能使用,微信开发者工具上无法使用。
    • 为了小程序能够使用腾讯云房间管理服务,您需要在手机微信上开启调试功能:手机微信扫码二维码后,单击右上角【...】>【打开调试】。

九、发布上线

关于小程序的发布流程,请参见 发布上线
在小程序发布上线前,请务必要在微信小程序控制台的【开发】>【开发设置】>【服务器域名】中配置 “request 合法域名”,否则将无法使用腾讯云的房间管理服务。需要配置的域名包括:

域名 说明
https://liveroom.qcloud.com MLVB 移动直播房间管理服务域名
https://webim.tim.qq.com IM 域名
https://pic.tim.qq.com IM 图片上传域名

常见问题

1. 开发和运行环境要求

  • 微信 App iOS 最低版本要求:6.5.21。
  • 微信 App Android 最低版本要求:6.5.19。
  • 小程序基础库最低版本要求:1.7.0。
  • 由于微信开发者工具不支持原生组件(即 <live-pusher> 和 <live-player> 标签),需要在真机上进行运行体验。

2. 调试时为什么要开启调试模式?

开启调试可以跳过把这些域名加入小程序白名单的工作,否则可能会遇到登录失败,通话无法连接的问题。

目录