腾讯云智聆口语评测微信开发相关-教育服务解决方案

准备工作

前端

1. 本接口采用微信 JS SDK 接口进行录音,开发前请阅读微信开发文档。2. 申请公众号,用于初始化微信 jssdk,申请地址微信公众平台,根据业务选择服务号或者订阅号。注意:需进行企业认证用于授权下载素材接口。3. 登录公众号后台,在开发 > 开发管理 > 开发设置 > 开发者 ID 中获取公众号 appid appsecret。4. 根据 微信开放文档,进行 config。5. 微信初始化成功(即各 API 权限已成功获取到,可在微信开发者工具查看)。

后端

1. 阅读获取 access_token 接口文档,后端根据文档开发相关功能。2. 阅读 微信开放文档,根据文档提供接口,返回签名及时间戳等信息,用于前端 jssdk config。3. 阅读 高清语音素材获取接口文档,后端根据文档开发相关功能,并提供接口。该接口地址让前端填入到 MediaUrl 即可。注意:接口需保证下载表现和直接在浏览器调用微信侧接口 https://api.weixin.qq.com/cgi-bin/media/get/jssdk?access_token=ACCESS_TOKEN&media_id=MEDIA_ID 一致,即在浏览器调用接口后下载二进制文件,文件内容需与直接调用微信接口内容一致,否则 SDK 内部无法正常下载及解析音频内容。

获取 access_token

参考 获取 access_token 。根据微信 appid 和 secret,拼接 url。请求 url 获取到 access_token。access_token 用于获取 jsapi_ticket 和 mediaUrl。注意:access_token 日调用上限为2000次,需业务侧做好缓存和更新逻辑。

Python 示例

def get_access_token():    appid = "" #通过微信公众平台,获取微信appid    secret = "" #通过微信公众平台,获取微信secret    get_access_token_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret    access_token = json.loads(requests.get(get_access_token_url).content)["access_token"] # 请求url,获取返回结果中的access_token    redis_store.set("access_token", access_token, 300) #access_token存储到redis    return access_token # 回调

jsapi_ticket 接口

接口描述

参考 JS-SDK 使用权限签名算法,获取 jsapi_ticket

请求方式

GET

请求地址

https://127.0.0.1:8080/get_jsapi_ticket (以实际提供接口地址为准)

请求参数

响应参数

响应示例

参数名称 参数描述
jsapi_ticket 通过access_token获取到的ticket
bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA

Python 示例

使用 flask 框架,需要使用 pip 安装以下依赖:

flaskflask_corsgevent

示例代码

import jsonfrom flask import Flask, request, render_templatefrom flask_cors import CORSfrom gevent import pywsgiapp = Flask(__name__)
CORS(app) # 允许跨域

@web_soe.route("/get_jsapi_ticket", methods=["GET"]) #通过该地址请求接口,只能使用get方法def get_jsapi_ticket(): access_token = redis_store.get("access_token") # 从redis获取access_token if not access_token: # 判断是否获取到了access_token,如果过期了就重新获取。 access_token = get_access_token() get_jsapi_tiket_url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + access_token + "&type=jsapi" jsapi_ticket = json.loads(requests.get(get_jsapi_tiket_url).text)['ticket'] # 请求url,获取返回结果 return jsapi_ticket # 回调 if __name__ == '__main__': server = pywsgi.WSGIServer(('0.0.0.0', 8080), app) server.serve_forever()

微信 H5

js_jsapi_ticket 填入demo 的77行,取消77 – 82行注释。

mediaUrl 接口

接口描述

参考获取高清语音素材 ,获取音频数据

请求方式

GET

请求地址

https://127.0.0.1:8080/get_media (以实际提供接口地址为准)

请求参数

参数名称 描述
mediaId 微信 H5 SDK 停止录音后会自动获取 mediaId 请求接口地址。前端无需填入 mediaId,后端需要接收 mediaId。

响应参数

参数名称 描述
mediaurl 音频的 byte 数据

响应示例

��(�8R L3?}�@ D0 :�JjŇ�G9G���������@�����x?(�P0�@&�>��'��(�a���8�n'�#�_4�����h������&x���wRko�X]������z|������-[�_8��(�A2��@�_2A�oG�h�=�Q�t�ࢩ:�?��XE<eO�H�����!w܁�hTU������P8����(����i�po���a���Q8K^���$~A��=H�%w�����ܺ�#c�ǻ(�r��2��(� ��ʃ�p�|����H�����xZ-F]$�)��P?���H���}����!��q��-c���X��[���(�����Fp��X546�r1�E(h�p(>��0�����İ��&��k�9W��)���Qs���(�h���L.��Nt(�`��PT���_����5����J�D�   ��$=L�Pј�`N�4�+��A����(���t�(��F����>��M(�QcrJ�r�B�+߈����v��~@e���"v�~����%��(��r��8�����X`pH��xѸ���?�������� %�L�����S��έ���Z��(�����q1,���=�UuWocŚ� �VX4!g|�k,   R����{m�.�뻎�ڕL��l�@���(����Lr�0�$�K��NJL�8t%�Jc-t&w�������︝��8Q����8̙�켝T�X��(������L[<Rg���'�Ed=��������!��:��+�+���g~팿�R�v�y���J���(����k�L�p��Ժ�o������*X��S]������@�.��C�jxY�m�����LHiHG��9Hԙ�H����(�9����kPL���.��=�H�g��a��je^ֻ�������������KC������u'�e�]� �I�����(�E6��ĘOcU=��Ts*�M�8�M�q��O��������0�?�:��7QU�Ѡz-J��2��~�Ԉ���(�K�´�VLԋ�f8����f��i_������Ħj�ƀ�pZ�\������[�:"�{$�ɐ*B,����(�RPƬ�Lp�p���R����{����Q-'�=��%_�iE�ie���Z��ASA�sEa���*un��(�[�ڤ�Vp��������B���/�X�*И0(���R"�����CX���E������,����(�ch���L����5��l�K��_�;�a ]TB1�c�ܡN��_�����o�R?Va�n%s��(�l����x�LI)Ub2¦������1�8��݈������*��$O�;������J����=jLAME��(�t�ހa�r3.99.5�������������������������������������������������������(�@�DzRp�������������������������������������������������������������(�}�������������������������������������������������������������

Python 示例

使用 flask 框架,需要使用 pip 安装以下依赖:

flaskflask_corsgevent

示例代码

import jsonfrom flask import Flask, request, render_templatefrom flask_cors import CORSfrom gevent import pywsgiapp = Flask(__name__)
CORS(app) # 允许跨域

@web_soe.route("/get_media/", methods=["GET"]) def get_media(mediaId): access_token = redis_store.get("access_token") # 从redis获取access_token if not access_token: # 判断是否获取到了access_token,如果过期了就重新获取。 access_token = get_access_token() get_media_url = "https://api.weixin.qq.com/cgi-bin/media/get/jssdk?access_token=" + access_token + "&media_id=" + mediaId mediaurl = requests.get(get_media_url).text # 请求url,获取返回结果中的音频数据 return mediaurl if __name__ == '__main__': server = pywsgi.WSGIServer(('0.0.0.0', 8080), app) server.serve_forever()

微信 H5

获取 mediaurl 的地址填入demo 的65行

nodejs 代码示例参考

module.exports = async function(req, res, next) {  var id = req.query.mediaId; // 获取请求的参数mediaId  var token = await getToken(); // 用户后台存储的token  var mediaUrl= `https://api.weixin.qq.com/cgi-bin/media/get/jssdk?access_token=${token}&media_id=${id}`; // 拼接url  request.get(mediaUrl).pipe(res); // 从微信后台获取音频并返回给前端};

腾讯云官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

发表评论