当前位置:   article > 正文

wx.getUserProfile too frequently 问题_invoke wx.getuserprofile too frequently

invoke 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 错误用法:
  1. setInterval(() => {
  2. wx.getSetting()
  3. }, 5000)
  • wx.getSetting 正确用法:
  1. let setting
  2. wx.getSetting({
  3. success(res) {
  4. setting = res
  5. }
  6. })
  7. // 在需要获取地理位置时
  8. if (setting.authSetting['scope.userLocation']) {
  9. wx.getLocation({
  10. success(res) {},
  11. fail(res) {
  12. if (res.errMsg.indexOf('auth deny') >= 0) {
  13. // 如果权限没有开,引导用户打开设置页开启地理位置授权
  14. }
  15. }
  16. })
  17. }
  • wx.getUserInfo 错误用法:
  1. Page({
  2. onShow() {
  3. wx.getUserInfo()
  4. }
  5. })
  • wx.getUserInfo 正确用法:
  1. App({
  2. onLaunch() {
  3. wx.getUserInfo()
  4. }
  5. })

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/616073
推荐阅读
相关标签
  

闽ICP备14008679号