uniapp云对象敏感词校验

目录

1.创建云对象

2.编辑文本

3.编写vue调用云函数检验

4.演示结果


1.创建云对象

复制代码
const FormData = require('form-data');

// 获取 access_token 的函数
async function getAccessToken(appid, secret) {
    const res = await uniCloud.httpclient.request(
        `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${secret}`,
        {
            method: 'GET',
            dataType: 'json'
        }
    );
    if (res.status === 200 && res.data.access_token) {
        return res.data.access_token;
    } else {
        console.log('获取 access_token 失败:', res.data.errmsg);
        return null;
    }
}

// 检测是否有敏感词
exports.checkText = async function(access_token, content) {
    const res = await uniCloud.httpclient.request(
        `https://api.weixin.qq.com/wxa/msg_sec_check?access_token=${access_token}`,
        {
            method: 'POST',
            data: {
                content: content
            },
            contentType: 'json',
            dataType: 'json'
        }
    );
    if (res.status === 200 && res.data.errcode === 0) {
        return {
            code: 0,
            msg: '没有敏感词'
        };
    } else if (res.data.errcode === 40001) {
        // access_token 无效,重新获取
        const newAccessToken = await getAccessToken('你的appid', '你的secret');
        if (newAccessToken) {
            return await this.checkText(newAccessToken, content);
        }
    }
    console.log('接口返回错误信息:', res.data.errmsg);
    return {
        code: -1,
        msg: '含有敏感词'
    };
};


exports.main = async function(params) {
    let newParams = params.params ? params.params[0] : params;
    if (newParams && newParams.action === 'getAccessToken') {
        return await getAccessToken(newParams.appid, newParams.secret);
    } else(newParams && newParams.action === 'checkText') {
        return await this.checkText(newParams.access_token, newParams.content);
    } 
    console.log('未匹配到正确的 action');
    return {
        code: -1,
        msg: '未指定正确的操作'
    };
};

2.编辑文本

基础代码

复制代码
<template>
	<view>
		<textarea placeholder="请输入..." maxlength="140" v-model="content"></textarea>

		<view class="footers" @click="submitBtn()">
			<view>提交</view>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				content: '',
				accessToken: ''
			}
		},
		onLoad() {

		},
		methods: {
			
			submitBtn() {
				if (this.content == '') {
					uni.showToast({
						title: '请输入反馈内容',
						icon: 'none',
						duration: 1000
					});
					return
				}
				
			}
		}
	}
</script>

3.编写vue调用云函数检验

复制代码
<template>
    <view class="wraps">
        <view class="boxs">
            <textarea placeholder="请输入..." maxlength="140" v-model="content"></textarea>
        </view>

        <view class="footers" @click="submitBtn()">
            <view>提交反馈</view>
        </view>
    </view>
</template>

<script>
export default {
    data() {
        return {
            content: '',
            appid: '你的appid',
            secret: '你的secret'
        };
    },
    onLoad() {},
    methods: {
        async submitBtn() {
			console.log('触发')
            if (this.content === '') {
                uni.showToast({
                    title: '请输入反馈内容',
                    icon: 'none',
                    duration: 1000
                });
                return;
            }
            const cloudObj = uniCloud.importObject('你的云对象名称');
            const res = await cloudObj.main({
                action: 'checkText',
                appid: this.appid,
                secret: this.secret,
                content: this.content
            });
            if (res.code === 0) {
               console.log('提交成功')
            } else {
               console.log('提交失败')
            }
        }
    }
};
</script>

4.演示结果

相关推荐
一条可有可无的咸鱼16 小时前
企业招聘信息,企业资讯进行公示
java·vue.js·spring boot·uni-app
游戏开发爱好者81 天前
H5 混合应用加密 Web 资源暴露到 IPA 层防护的完整技术方案
android·前端·ios·小程序·uni-app·iphone·webview
2501_915106321 天前
最新版本iOS系统设备管理功能全面指南
android·macos·ios·小程序·uni-app·cocoa·iphone
游戏开发爱好者81 天前
HTTPS DDoS 排查 异常流量到抓包分析
网络协议·ios·小程序·https·uni-app·iphone·ddos
一点晖光1 天前
小程序中web-view加载uni-app H5如何使用postMessage方法的解决方案
前端·小程序·uni-app
2501_915918411 天前
iOS 性能监控 运行时指标与系统行为的多工具协同方案
android·macos·ios·小程序·uni-app·cocoa·iphone
qq_424409191 天前
uniapp,通过webview内嵌h5页面,如何修改h5的大小
uni-app
00后程序员张1 天前
IPA 混淆技术全解,从成品包结构出发的 iOS 应用安全实践与工具组合
android·安全·ios·小程序·uni-app·cocoa·iphone
郑州光合科技余经理1 天前
定制开发实战:海外版外卖系统PHP全栈解决方案
java·服务器·开发语言·javascript·git·uni-app·php