更新记录

3.5.18(2024-03-25)

  • 增加 管理端增加ugc发布用户选项(如果选择了用户,那么发布者为选择的用户;否则为当前登录者。需要更新管理端和上传云函数)

3.5.17(2024-03-20)

  • 修改 优化广场中内容为:非推荐、非加精内容

3.5.16(2024-03-13)

  • 修复 修复商品搜索界面分类列表无法滚动的问题
查看更多

平台兼容性

阿里云 腾讯云 支付宝云
×
Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue app-nvue
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

云函数类插件通用教程

使用云函数类插件的前提是:使用HBuilderX 2.9+


UNIBBS 3.0版本

打造社区+自营店的应用

3.0主要升级点:会员体系、优惠券功能、二级分销,区域分销、分销员奖励,积分体系、激励视频、ai功能、每日任务、积分换购等

  1. UI全面革新
  2. 1.0和2.0版本积累的经验和收到的反馈,分类有子级并不是很好,让用户选择分类也太复杂。所以3.0取消二级分类,采用tag进行自动化匹配。同时,需要伴随管理人员通过管理端手动去维护更精准的分类
  3. 编辑器进行简化
  4. 增加话题功能
  5. 增加即时通讯功能
  6. 拆分UGC互动消息和定时任务
  7. 增加全局字体大小调节功能
  8. 增加配置文件
  9. UGC其他功能的升级
  10. 商城全面革新(1.0和2.0有多商场功能,3.0进行了剔除,可以二开)
  11. 管理端增加用户数据、订单数据等相关功能显示
  12. 管理端增加店铺自定义功能、门店管理、shop首页自定义
  13. 重写商品发布功能
  14. 增加快递公司管理、运费模版管理(对不同商品可以定制是否包邮的同时、选择不同的不包邮时的快递费用)
  15. 增加交易设置(定制订单取消、自动收货、退款审核相关)
  16. 增加二级分销体系(东西太多就不列了...)
  17. 增加积分体系
  18. 增加会员成长体系
  19. 增加分销成长体系
  20. 增加优惠券功能(发放和领取)
  21. 每日任务功能(签到、点赞、评论)
  22. 积分换购功能
  23. 激励视频
  24. 可定制的站点功能
  25. ai功能
  26. 增加爬虫程序,解决开始没有ugc内容的难题。现在只需要改一改关键字,就可以很快添加多条内容。(使用爬虫时,请先阅读爬虫程序的注释)
  27. 增加短信提醒,7天后未登录但是有未读消息用户发送短信,点击链接打开应用

如果您有好的项目/插件想法可以联系我,一起参与开发进行设计制作

使用前,请先阅读该文件!请先阅读该文件!请先阅读该文件!阅读该文件可以解决您遇见的99%的问题 保持HBuildx的更新,将会解决1%的问题

UI框架使用TMUI

后端使用uniCloud,开发框架使用vk。云开发优点:十分节约成本,不用维护服务器,不考虑扩容,性能好,使用方便稳定。

使用VUE3 + TS

联系方式 email:beydeng@163.com QQ:502183572。请不要通过下方联系作者按钮进行联系,一般是收不到消息滴...

小程序体验码

安卓下载地址

管理端见下方,为gitee地址,使用git进行下载更新。 下载地址

前置工作:修改云函数全局配置文件(用到微信登录的必须要配置)

(如果您的站点不需要关联位置信息,只需要将首页选择位置部分的代码注释即可)

  1. 打开文件 manifest.json,点击【微信小程序配置】,配置 appid (在微信小程序官方的后台获取)
  2. 打开文件 cloudfunctions/common/uni-config-center/uni-id/config.json(没有则新建)(注意这里是config.json).配置 mp-weixin 内的 appid 和 appsecret(在微信小程序官方的后台获取)

    短信申请地址

    "service": { "sms": { "name": "小镇+短信验证码", "codeExpiresIn": 600, "smsKey": "", "smsSecret": "", "templateId": "", "orderTemplateId": "" },

    短信配置文件说明:短信验证码模版中 orderTemplateId为订单发送模版,申请格式如下

    截图


  3. 将以下域名加入小程序 request 合法域名

腾讯云:https://tcb-api.tencentcloudapi.com;

阿里云:https://api.next.bspapp.com;

参考链接并将URL化后的地址也加入

(阿里云和腾讯云切换:打开项目路径,修改unCloud-aliyun(转为阿里云)/uniCloud-tcb(转为腾讯云)。线上项目,建议使用腾讯云,稳定性更高!)

配置完后,记得上传 公共模块 和 云函数 (如果第一次上传,需要上传全部的 公共模块 和 云函数)

  1. 直接右键uniCloud目录 点击 运行云服务空间初始化向导 即可

  2. 重置管理端密码

    打开router云函数目录下的 router.param.json 重置admin密码下面的代码,然后运行云函数

  3. 初始化数据库

6.1 右键db_init初始化数据库 6.2 右键database上传所有DB schema 6.3 导入database/initdatas下的数据到相应表中 6.4 articles表下添加lnglat的地理位置索引和area_code普通索引

6.5 zone表下添加lnglat 地理位置索引。然后将链接下的cn-zone-split压缩文件解压,导入json文件到表中。如果导入失败,多试几次,或者将单个json文件拆封更小数据。 链接提取码: xqma

6.7 给message-im、message-ugc表添加session_id索引(添加索引,查询更快)

截图

  1. 右键项目,命令行打开,执行 npm install

  2. 申请和配置广告id 8.1 申请开通uni-id uni-id 8.2 后台配置广告id(每种类型只需要配置一个) 8.3 如果提示插件没有申请,请src/common/config.json配置文件中进行关闭广告功能 8.4 如果还是报错提示开通ad插件,请手动<ad搜索,将以<ad和<ad-rewarded-video的代码注释,开通之后,再取消注释

  3. 支付配置

9.1 打开 cloudfunctions/common/uni-config-center/uni-pay/config.js。配置notifyUrl和一些支付参数为自己的 9.2 将 appCertPublicKey.crt、alipayRootCert.crt、alipayCertPublicKey_RSA2.crt 3个证书放在此目录下(阿里支付) 9.3 将 wxpay.p12 1个证书放在cloudfunctions/common/uni-config-center/uni-pay/wxpay/目录下(微信支付) 部分自定义配置请查看src/common/config.json,修改成自己的 9.4 如果发现小程序微信登录code不正确,将云函数下common/uni-config-center-vk-unicloud中vk-unicloud的index中的context的APPID修改为自己的

  1. 开通unipush-v2。 配置时,如果应用只运行在小程序的话,iOS和安卓的配置采用系统默认的。配置完成之后,修改服务端下的service/util/config中的appId为自己的appId。注意:上线时,请修改改配置文件下的miniprogram_state为formal。

    // miniprogram_state 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版

    对于小程序,需要配置小程序订阅消息。(如果不配置,小程序无法收到订阅消息,如果配置后还是无法收到消息 请Q我 QQ:502183572 mail:beydeng@163.com。解答安装问题,时间19-23点

    订阅消息又限制。一次最多订阅3个消息。所以发布帖子时,会订阅UGC(comment、like、fans),关注时会订阅attention,发送消息会订阅message

    10.1 评论提醒。在小程序后台管理-功能-订阅消息-公共模版库中找到新的评论提醒模版标题-选用。之后参考下方截图选择4个内容。确定模版。复制模版ID并替换service/util/config中的template_ids中的UGC中comment值。

    WX20230321-142757@2x.png

    10.2 点赞提醒。替换service/util/config中的template_ids中的UGC中like值。

    截图

    10.3 新帖子提醒。替换service/util/config中的template_ids中attention值。

截图

10.4 新增关注提醒。替换***service/util/config***中的template_ids中的UGC中fans值。

截图

10.5 聊天消息提醒。替换***service/util/config***中的template_ids中的message的值。

截图

  1. 用户注册时会给一个默认头像,2.0版本是api.multiavatar.com这个api根据用户名随机生成地址并下载存储。3.0取消该方法,简单维护几个头像使用。配置文件在service/util/config下的user_default_img中进行配置。
  2. 将根目录下的src目录下的 z-paging-index.js中的内容替换到uni_modules/z-paging/config/index.js
  3. 配置客服人员。通过web管理端,给用户绑定上客服的角色。
  4. 重置web管理端密码。

    找到router云函数目录下的router.params.json,将重置admin密码的注释打开,然后右键router云函数本地运行。

    截图


  1. 数据库初始化。登录uni-cloud后台管理

    进入项目的服务空间,导入database下db_init目录下的数据到对应的表中。如categories-db导入到categories表中。其他情况类似。

    截图


注意事项:

  • 不要随意清除vk-global-data表下的数据。否则用户发布新的内容后,无法推送消息给粉丝。
  • 所有UGC消息采用队列发布。也就是非及时的。会将这种消息,先写入到一个消息队列中,然后定时任务进行转发。阿里云定时任务可以达到最低1分钟触发一次,腾讯云可以配置到1秒钟云函数定时任务
  • trigger-ugc函数为ugc定时任务。在package.json内配置定时触发器(触发内容有:点赞、评论、增加粉丝、关注人有新的内容)

    trigger-message函数为message定时任务。在package.json内配置定时触发器(触发内容有:私信、订单消息、支付消息、系统消息)

  1. 配置云函数下 uni-config-center下 uni-pay的配置文件,并将生成的证书放在uni-pay的uni-pay中。

    截图

  2. 快递查询使用的是第三方的查询api,需要自己去申请。购买渠道

截图

![截图](https://mp-4ff800f1-8f08-45b7-ac27-3bf9aadb50df.cdn.bspapp.com/cloudstorage/da35e210-2fb0-4de2-bd5f-d1acf7422b39.png)
  1. 语音合成功能(申请api),先上传云函数下database下articles-audio.schem库,并更新管理端。只有管理端对可以转语音的内容才能转语音 打开 uniCloud/cloudfunctions/common/uni-config-center/vk-unicloud/index.js 文件,配置里面的"openapi.baidu" 百度开放平台。更新之后,记得上传uni-config-center 当前开启的是精品语音,如果需要开启普通语音合成,请修改router/timedTask/pub/article2AudioQueue下第53行voice参数长文本在线合成API 逻辑说明: 当管理端对某一个ugc开启语音后,会将需要语音合成的任务写入库中,然后定时任务批处理开启语音的ugc进行语音合成,因为合成过程会花费时间不是及时的,所以如果第一次没有拿到合成语音,会等待下次。所以开启语音的文章,如果立即去获取音频,可能前端没有音频。当前定时任务为每5分钟执行一次,可以按照实际修改trigger-article-audio下triggers触发周期(参考文档:https://uniapp.dcloud.io/uniCloud/trigger)(需要上传Router和trigger-article-audio云函数)(因为api每一个字符都要收钱,所以不能对所有内容全部开启) 获取的语音合成文件会先下载然后上传到云存储中

  2. uni-ai开通流程 开通之后不需要配置任何东西。(当前最大token数为1000,如果产生截断问题,修改uni-ai-chat云函数index.obj.js下tokensToGenerate的长度)

  3. 爬虫说明: (需要下载Chromium程序,下载路径[https://registry.npmmirror.com/binary.html?path=chromium-browser-snapshots/]并更新spider-village/index.js下的puppeteer基本配置中Chromium所在目录) 需要手动更改程序下的_category_ids,也就是说爬取的内容在特殊情况(及没有找到分类的情况)下你想放在那个分类下。使用爬虫时,请先看下代码中的注释

  4. 公众号登录流程

    • 需要登录公众号后台,获取 appid 和 appsecret 并填写在 uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json 内
      "h5-weixin": {
      "oauth": {
      "weixin": {
      "appid": "微信公众号appid",
      "appsecret": "微信公众号appsecret"
      }
      }
      }
    • 在公众号后台左侧菜单 - 设置与开发 - 公众号设置 - 功能设置 - 配置业务域名、网页授权域名、JS接口安全域名
    • 添加如下代码,访问授权页面
      let appid = "你的公众号appid";
      let redirect_uri = window.location.href.split("?")[0];
      let scope = "snsapi_userinfo";
      let url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${redirect_uri}&response_type=code&scope=${scope}&state=STATE#wechat_redirect`;
      window.location.href = url;

      注意1:h5的路由模式必须配置为 history,因为微信公众号登录的回调地址不支持 hash 模式。 注意2:你的前端托管那需要设置404指向的页面为index.html

    • 授权完后页面会重新返回到你自己的页面(但此时页面已经刷新了),此时在页面 onLoad 函数中可以获取到 code
  5. 增加短信提醒打开应用功能

    • 当用户如果7天没登录,并且有未读消息时,就会进行短信推送,提示打开app或者小程序
    • 小程序链接生产方式:打开云函数下【router.param.json】中 (生产小程序url链接)代码块,本地运行生产链接。(链接不是永久的)
    • 短信模版为【您有${num}条未读消息,点击查看${url}。】(num请选择数组,url请选择链接)
    • 增加模版之后,在timedTask/pub/messageRemindQueue中,将模版id填入templateId
    • 每个人只会在每7天收到一次短信,避免骚扰用户 短信模版
  6. UGC内容连接跳转说明

    • 通过管理端发布UGC内容时,可以增加相关链接进行跳转
    • 如果是URL,则直接跳转到URL所在地址[注意:小程序中需要配置URl访问地址到小程序开发平台]
    • 如果是第三方mini小程序的话,请使用mini-xxx,xxx为第三方小程序id
    • 如果是本地连接的话,以/page开头,如跳转商品/pages/business/goods-detail?_id=xxx,xxx为商品id,其他路径请参考src/pages.json文件

App下config.json配置文件各配置说明

{   
    // 云配置
    "CLOUD": {
    },
    "LOGO": "",
    // 话题ICON
    "TOPICICON": "",
    // 发布文章时,话题ICON
    "P-TOPICICON": "",
    // 活跃用户ICON
    "ACTIVEUSER": "",
    // 消息中系统图标
    "message_system_icon": "",
    // 消息中话题讨论图标
    "message_system_talk": "",
    // 用户协议和隐私政策地址
    "protocols":[
    ],
    // 底部tabbar
    "TABBARS": [
        "s_img": "", //选择
        "n_img": "", //未选中
    ],
    //用户头像占位图
    "user_header_bg": "",
    // 占位背景图
    "placeBg": "",
    // 话题头部默认占位背景
    "topicHeaderDefaultBg": "",
    "hotTopBg": "",
    // 页面下拉加载
    "paging_loadings": [
    ],
    // 分享如果是视频
    "shareVideoBg": "",
    "audioBg": "",
    // 前端去截帧,不稳定
    //用户上传视频后,编辑器中出现的视频展位图
    "editor_video_bg": "",
    // 空页面时的图片
    // 请按顺序进行替换 1.普通缺省 2.加载失败 3.评论缺省 4.搜索缺省 5.消息缺省
    "empty_imgs": [

    ],
    // 我下方的工具按钮icon
    "me_tools_icons": [

    ],
    "me_business_tools_icons": [ //推广大使 //会员卡 //我的地址 //我的优惠券
    ],
    "local_icons": [ // 首页开启local / 未开启local
    ],
    // 用户默认定位
    "local": {
    },
    // 是否开启广告功能
    // 申请开通uni-id [uni-id](https://uniapp.dcloud.net.cn/uni-ad.html#start) 
    "openAD": true,
    "adpid": {
        // banner广告
        "banner": "",
        // 视频广告
        "video": ""
    }
}

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问