wx.getUserProfile too frequently 问题

接口调用频率规范

概念介绍

小程序wx接口可分为“普通接口”和“限频接口”。

“限频接口”指的是一个用户在一段时间内不允许频繁调用的wx接口,此类接口一般会调用到微信后台系统资源,为了保护系统,同时防止用户资源被滥用,开发者需要对此类接口做适度的频率限制,不能无节制地调用。

平台会对小程序内“限频接口”的调用情况做监控,如果小程序对此类接口的调用频率超出平台的规范,将会收到站内信提醒。系统会在资源紧张的情况下优先保障合理使用的小程序的服务。

开发者可登录小程序管理后台-开发管理-接口设置中查看“限频接口”调用情况。

目前,“限频接口”包括以下接口:

  1. wx.login
  2. wx.checkSession
  3. wx.getSetting
  4. wx.getUserInfo
  5. wx.getUserProfile

频率规范

API规范其他说明
wx.login一天的调用总次数不多于该小程序pv的两倍,单用户一秒钟不能大于4次-
wx.checkSession一天的调用总次数不多于该小程序pv的两倍,单用户一秒钟不能大于4次-
wx.getSetting一天的调用总次数不多于该小程序pv的两倍,单用户一秒钟不能大于4次-
wx.getUserInfo一天的调用总次数不多于该小程序pv的两倍,单用户一秒钟不能大于4次-
wx.getUserProfile一天的调用总次数不多于该小程序pv的两倍,单用户一秒钟不能大于4次-

Tips: 微信后台会延迟一天统计上一天的小程序pv总数和api调用总数,超过规范总数的会提醒尽快调整。

优化方法

开发者可以参考以下方法对“限频接口”的调用频率做优化:

  • 把上一次调用接口的返回结果缓存下来以供后续逻辑复用,而不是重新调用接口
  • 避免在定时循环的逻辑内重复调用“限频接口”
  • 避免在页面初始化事件onLoadonShowonReady中调用限频接口,应该在小程序初始化事件onLaunch中调用

以下是错误用法和正确用法示例:

  • wx.getSetting 错误用法:
setInterval(() => {wx.getSetting()
}, 5000)
  • wx.getSetting 正确用法:
let setting
wx.getSetting({success(res) {setting = res}
})// 在需要获取地理位置时
if (setting.authSetting['scope.userLocation']) {wx.getLocation({success(res) {},fail(res) {if (res.errMsg.indexOf('auth deny') >= 0) {// 如果权限没有开,引导用户打开设置页开启地理位置授权}}})
}
  • wx.getUserInfo 错误用法:
Page({onShow() {wx.getUserInfo()}
})
  • wx.getUserInfo 正确用法:
App({onLaunch() {wx.getUserInfo()}
})

需要在小程序后台开发管理-接口设置里面全部开通就好了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/18991.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试基础概念

什么是需求 什么是需求?简单来说就是我想吃饭,这件事就是我的需求,我不想上课,这也是我的需求。对于软件测试来说,需求可以分为用户需求和软件需求。 用户需求 用户需求简单可以理解为甲方提出的要求,如…

git基础教程(linux)

1.git简介 git 分布式版本控制 git两大特点: 版本控制:支持多人同时开发 分布式: 2.安装与配置 安装 sudo apt-get install git安装成功,运行如下命令: git3.创建一个版本库 (1)新建一个目录git_test&#xff0c…

zabbix服务部署

文章目录 zabbix1 zabbix简介1.1 组成部件1.2 监控原理1.3 Zabbix 6.0新特性1.4 Zabbix6.0功能组件1.4.1 Zabbix Server1.4.2 数据库1.4.3 Web界面1.4.4 Zabbix Agent1.4.5 Zabbix Proxy1.4.6 Java Gateway 2 部署zabbix服务端2.1 部署Nginx2.2 安装PHP2.3 修改Nginx配置2.4 修…

找工作不用愁!送你一份Salesforce顾问面试秘籍(下)(含答案)

作为SaaS行业的先驱,Salesforce的发展一路高歌猛进。在Salesforce生态系统中不仅能学习到最新的技术,而且比其他行业的同岗位享有更高的薪水,这也驱使了越来越多人加入Salesforce大军。 在之前的文章中,自由侠部落为学习者梳理了…

奥威BI-金蝶云星空SaaS版一站式平台:对接数据、做分析

金蝶云星空和BI大数据分析平台都在企业数字化转型中扮演了重要的角色,为企业提供了全面的数字化解决方案和数据分析功能,两者强强联合不仅能提高部署效率,更能增强数据分析、数据可视化效果,帮助企业更好地适应市场变化和用户需求…

Arcgis Pro NDVI(植被指数)导出RGB

在arcgis中计算的NDVI栅格数据,取值范围为-1到1,直接导出JPG或者PNG,会出现导出错误的问题: 导出出错, 设置导出格式为TIFF,然后选中使用渲染器,勾选强制RGB颜色,即可导出你选择的色…

【C++STL】list的反向迭代器

list的反向迭代器 文章目录 list的反向迭代器reverse.h疑问1:为什么在迭代器当中不需要写深拷贝、析构函数疑问2:为什么在迭代器当中需要三个模板参数?疑问3:反向迭代器是怎么实现的?疑问4:为什么*解引用不…

创建UI组件库后上传NPM

上篇已经讲了如何创建自己的组件库,这篇讲怎么上传npm后,可以下载使用 1.首先看下组件的文件结构 在index.js中要写上每个组件可以按需引用的条件 import Button from "./src/button";Button.install function(Vue) {Vue.component(Button.…

Kubernetes 容器类型 Init - pause - sidecar - app容器

目录 Kubernetes 的容器类型 Init 初始化容器 参考文档:Init 容器 | Kubernetes 使用 Init 容器的情况 案例:定义了一个具有 2 个 Init 容器的简单 Pod 你通过运行下面的命令启动 Pod: 发现两个Init容器都没有运行成功 查看更多详细…

Mycat【什么是Mycat、Mycat与其他中间件区别、Mycat应用场景、核心概念详解、Mycat原理】(一)-全面详解(学习总结---从入门到深化)

目录 Mycat概述_什么是Mycat Mycat概述_Mycat与其他中间件区别 Mycat概述_Mycat应用场景 Mycat概念_核心概念详解 Mycat概述_Mycat原理 Mycat部署安装_MySQL主从复制概述 Mycat概述_什么是Mycat 什么是Mycat Mycat是数据库中间件,所谓中间件数据库中间件是连…

Oracle语句优化 (汇总)

大部分写sql语句都是为了实现而实现,如果最后在投入使用的过程中没有很难接受的性能,基本不怎么去考虑其性能。最近刚好有点时间,对优化方面进修进修,以备不时之需。 选择最有效率的表名顺序 Oracle的解析器按照从右到左的顺序处…

欧姆龙以太网口怎么和电脑连接

捷米特JM-ETH-CP以太网通讯处理器用于欧姆龙 CP1L/ CP1E/ CP1H 系列 PLC 的以太网数据采集,捷米特JM-ETH-CP以太网模块不占用 PLC 通讯口,即编程软件/上位机软件通过以太网对 PLC 数据监控的同时,触摸屏可以通过复用接口与 PLC 进行通讯。支持…