微信小程序中的自动聊天
主要分为两个部分的调用 图灵机器人接口+调用百度语音播报API接口,废话少说咱们直接上代码
const app = getApp()Page({ hello: function() { this.setData({ pd: true }) },
/** * 页面的初始数据 */
data: { tittle: "机器人聊天室", syas: [], nr: '', pd: false, headLeft: 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=4139308026,2925331886&fm=26&gp=0.jpg', headRight: '', token: '', tulingspeak: '' , filePath:'', bianliang:'', scrollTop: 600 }, methods: {},
/** * 生命周期函数--监听页面加载 */
onLoad: function() { let that = this wx.getUserInfo({
success: function(e) {
let header = e.userInfo.avatarUrl
that.setData({
headRight: header
})
}
})
},
converSation: function(e) { let that = this var obj = {}, isay = e.detail.value.says, //获取输入了什么
syas = that.data.syas, //获取当前数组的内容并且把它付给syas变量
length = syas.length, //获取当前的数组长度
key = '2972a46feda14f908df7537da16d4f46' //这里填入你得到的图灵机器人的
apikey console.log(length)
wx.request({ //请求图灵机器人的接口
url: 'http://www.tuling123.com/openapi/api?key=' + key + '&info=' + isay,
success: function(res) { let tuling = res.data.text; //这个是图聆机器人返回值
obj.robot = tuling; //把返回值发给正常 给这个对象robot属性
obj.isay = isay;//获取输入的东西给obj.isay
obj.id = "div"+length
syas[length] = obj;; //把这个obj对象变成 syas【length】的数组的值
that.setData({
syas: syas, //把整个syas给Data里的syas
nr: '',
d: false,
tulingspeak: res.data.text ,//把这个机器人返回的值附加给全局变量
scrollTop: that.data.scrollTop + 350 //这是。。。 }); } }) that.to(); },
delectChat: function() { //清除syas里边的内容
let that = this that.setData({ syas: [], //清空 nr: '' }) },
to: function() { var that = this ; var grant_type = "client_credentials";
var appKey = "ohNbirS0WGjKbCOR8FpxOeF5"; var appSecret = "dnIdDq8szxqCQ0yLMt25NPTTwezbMRoI";
var url = "https://openapi.baidu.com/oauth/2.0/token?" + "grant_type=" + grant_type + "&client_id=" + appKey + "&client_secret=" + appSecret; wx.request({ url:url, method: "GET", dataType:'json',
success: function(res) { //设置1这个成功时候的返回的TOKEN码 that.setData({ token: res.data.access_token, //把这个TOKEN码给一个常量 })
that.cancel(); } }) }, cancel: function(e) { //具体翻译每一句话
var text = e.currentTarget.dataset.text; //把全局变量图灵机器人的话给到一个局部变量
var tex = encodeURI(text); //转换编码url_encode UTF8编码 var tok = this.data.token; //把TOKEN值给到一个变量+
var cuid = 12345685; // 字符编码
var ctp = 1; //表示语音种类
var lan = "zh"; // zh表示中文 var spd = 5; // 表示朗读的语速,9代表最快,1是最慢
var url = "https://tsn.baidu.com/text2audio?tex=" + tex + "&lan=" + lan + "&cuid=" + cuid + "&ctp=" + ctp + "&tok=" + tok + "&spd=" + spd wx.downloadFile({ //下载资源后返回的路径位置 url: url, success: (res)=> { console.log(res) console.log('chenggong') this.setData({ filePath : res.tempFilePath,//临时文件路径 scrollTop: this.data.scrollTop + 350 //这是啥 }) // 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容 this.play() },
filePath: () => { },
complete: () => { } }); }, //播放 play: function()
{ const tolingtextspeak = wx.getBackgroundAudioManager()//调用微信的音乐播放功能 tolingtextspeak.title="语音播放" tolingtextspeak.src = this.data.filePath//把播放的地址给这个 tolingtextspeak.play() },})
希望对大家有帮助这次分享结束。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...


