微信运动接口(获取自己的微信运动数据)

这篇具有很好参考价值的文章主要介绍了微信运动接口(获取自己的微信运动数据)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

@toc

1、微信运动接口wx.getWeRunData()

1.1 实现步骤

  该接口获取用户过去30天微信运动步数。该接口比较复杂,具体操作步骤如下:

  • 先调用wx.login()接口获取code

  • 使用wx.request()接口向地址https://api.weixin.qq.com/sns/jscode2session?appid= appid &secret= secret &js_code= res.code &grant_type=authorization_code发送网络请求,此时需要发送appid、secret和code3个参数,返回session_key。

  • 调用wx.getWeRunData()接口返回encryptedData和iv,其中encryptedData是加密的步数信息,需要解密为明文。

  • 在小程序中使用CryptoJS组件对encryptedData进行解密,此时需要用到appid、session_key和iv,解密得到明文的步数信息是小程序的可读信息。

1.2 接口参数

属性 类型 默认值 必填 说明
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

object.success回调函数:

属性 类型 说明 最低版本
encryptedData string 包括敏感数据在内的完整用户信息的加密数据,详细见加密数据解密算法。解密后得到的数据结构见后文
iv string 加密算法的初始向量,详细见加密数据解密算法
cloudID string 敏感数据对应的云 ID,开通云开发的小程序才会返回,可通过云调用直接获取开放数据,详细见云调用直接获取开放数据 2.7.0

官网示例代码:

wx.getWeRunData({
  success (res) {
    // 拿 encryptedData 到开发者后台解密开放数据
    const encryptedData = res.encryptedData
    // 或拿 cloudID 通过云调用直接获取开放数据
    const cloudID = res.cloudID
  }
})

2、获取运动数据案例

  本例使用wx.getWeRunData()接口获取用户的运动步数并显示。解密的CryptoJS组件可以在https://www.npm.js.com/package/crypto-js下载得到。如下图圈起来的所示:

微信运动接口(获取自己的微信运动数据)

  getWeRunData.wxml:

<view wx:for="{{stepInfoList}}">{{30-index}}天前你运动了{{item.step}}步</view>

  getWeRunData.js:

var DataCrypt = require('../../utils/DataCrypt.js');

Page({

  /**
   * 页面的初始数据
   */
  data: {
    stepInfoList:[]
  },


  onLoad: function (options) { 
    var that = this;
     wx.login({ 
       success: function (res) { 
         var appid = "你的appid"; 
         var secret = "你的小程序密钥"; 
         if (res.code) { 
           wx.request({ 
             url: 'https://api.weixin.qq.com/sns/jscode2session?appid=' + appid + '&secret=' + secret + '&js_code=' + res.code + '&grant_type=authorization_code', 
             header: { 'content-type': 'json' }, 
             success: function (res) {
                  var session_key = res.data.session_key; 
                  console.log("seccion_key:"+session_key); 
               that.getWeRunData(appid, session_key); } 
                   }) 
                  }
             } 
             }) 
   }, 
                   //获取encryptedData(没有解密的步数)和iv(加密算法的初始向量) 
  getWeRunData: function (appid,session_key) {
      var that=this
      wx.getSetting({ success: function (res) {
         console.log(res); 
         if (!res.authSetting['scope.werun']) 
         {
           wx.authorize({
             scope: 'scope.werun',
             success:()=>{
               console.log("授权测试成功!!!")
             }
           })
            wx.getWeRunData({ 
                 success: function (res) {
                    console.log(res); 
                    var encryptedData = res.encryptedData; 
                    var iv = res.iv;
                    var pc = new DataCrypt(appid, session_key); 
                    console.log(pc); 
                    var data = pc.decryptData(encryptedData, iv) 
                   console.log("------" + data.stepInfoList[30].step)
                 that.setData({
                   stepInfoList: data.stepInfoList})
                 },
                fail: function (res) { console.log("获取数据失败") }
            })
          //  wx.showModal
          // ({ 
          //    title: '权限提示', 
          //    content: '获取微信运动步数需要开启计步权限', 
          //    success: function (res) 
          //     { 
          //      if (res.confirm) { 
          //        //跳转去设置 
          //        wx.openSetting({ 
          //          success: function (res) 
          //          {
          //            console.log("authSetting:"+res.authSetting)
          //          }
          //      })
          //      } 
          //     }
          // })
        } else {
               wx.getWeRunData({ 
                 success: function (res) {
                    console.log(res); 
                    var encryptedData = res.encryptedData; 
                    var iv = res.iv;
                    var pc = new DataCrypt(appid, session_key); 
                    console.log(pc); 
                    var data = pc.decryptData(encryptedData, iv) 
                   console.log("------" + data.stepInfoList[30].step)
                 that.setData({
                   stepInfoList: data.stepInfoList})
                 },
          fail: function (res) { console.log("获取数据失败") }
        })
      }
    }
    })
  },





  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    
  }
})

   这里我并没有给出我的appid和secret,敏感数据不要给别人看,你去你小程序后台用自己的。

   本例中CryptoJS组件属于网络开源项目,下载之后引入到小程序项目中,DataCrypt.js文件的作用是吧CryptoJS组件引入到小程序项目。wx.getWeRunData()接口获取的encryptedData经过CryptoJS组件解密之后得到的明文数据data中包含了微信运动数据,具体的数据在data.stepInfoList数组中,该数组共31条记录,对应当日和前30天的运动步数数据。其中,stepInfoList[0]是30天前的运动步数数据,setpInfoList[30]是当日的运动步数数据。

2.1 真机调试

微信运动接口(获取自己的微信运动数据)

  点击允许之后,可以看到我们的微信运动数据就出来了。

微信运动接口(获取自己的微信运动数据)

  验证下今天的数据是否正确,查看下自己的微信运动数据:

微信运动接口(获取自己的微信运动数据)

可以看到,今天的数据和接口获取到的第0天的数据都是14972步,演示完毕。文章来源地址https://www.toymoban.com/news/detail-501464.html

到了这里,关于微信运动接口(获取自己的微信运动数据)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • wechaty撸一个属于自己的微信机器人(Python版接入文心一言)

    说明: 机器人的框架找了很久,由于很多框架都不能使用了或者封号率极高,最后选择了wewechaty,wechaty是可以使用ipad协议,主要是以node写的,因为打算机器人接入爬虫项目,所以特意用了python版本,对于python版网上教程太少且模糊且时间过于久远,所做以此文为采坑记录。 前期准备

    2024年02月04日
    浏览(39)
  • uni.getUserProfile获取的微信昵称是微信用户,头像获取的是默认头像

    问题:uni.getUserProfile获取的微信昵称是微信用户,头像获取的是默认头像  原因:小程序用户头像昵称获取规则调整公告 | 微信开放社区 解决效果: 代码: 参照:  微信小程序获取用户头像昵称手机号最新版

    2024年02月12日
    浏览(35)
  • 微信小程序获取接口数据与展现

    先来了解一下data的取值与赋值吧 data 是页面第一次渲染使用的初始数据。页面加载时,data 将会以JSON字符串的形式由逻辑层传至渲染层,因此data中的数据必须是可以转成JSON的类型:字符串,数字,布尔值,对象,数组。 { } 大括号,表示定义一个对象,大部分情况下要有成

    2024年02月09日
    浏览(61)
  • uniapp微信小程序获取微信运动步数(保姆级教程)

    官方文档 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html 可以先了解一下,然后下载对应的解密文件 找到对应的解密语言版本,老师这里用的uniapp,只能选择node版 这里有具体的案例,可以参考一下,直接在代码中导入,在上面的getStepInfo方法中直接实例化

    2024年02月06日
    浏览(46)
  • 基于微信体育运动场地预约小程序毕业设计成品作品(7)小程序首页接口

    博主介绍: 《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月07日
    浏览(53)
  • 手把手教你搭建微信聊天机器人系列(三):搭建对接文心一言(ERNIE-Bot大模型)接口的微信聊天机器人

            上一章介绍了eggjs+wechaty搭建一个简单的微信聊天机器人,只是实现了简单的回复,这一章我们将对接ERNIE-Bot接口,实现智能回复。         我们在上一章代码基础上进行调整,首先我们要加入access_token的请求逻辑。第一章我们说过,请求需要使用应用对应的

    2024年02月03日
    浏览(57)
  • uniapp小程序(原生微信小程序也可以使用),获取接口二进制流数据上传文件到服务器

    需求:通过接口返回的二进制流数据,这个流数据他是一个xlsx文档,需要给到用户一个文档线上连接。 下面是具体代码,注意只针对二进制的文件数据,如果图片上传直接调用uploadFile就可以,并且兼容原生微信小程序。  

    2024年02月16日
    浏览(48)
  • 基于Python的微信聊天记录分析——数据处理与分析

    本篇为《基于Python的微信聊天记录分析》系列的第二篇,主要讲解获取到聊天记录数据之后,在Python环境下对其进行数据处理、分析和可视化,涉及库的安装、相关操作的Python代码等内容。希望和大家多多交流,共同进步! 数据分析的基础是“数据”,俗话说基础不牢,地动

    2024年02月19日
    浏览(52)
  • python连接自己的机器人接口在微信聊天

    机器人有连接到数据库,所以可以长记忆对话,多线程可以使得机器人同时和几个好友聊天。将消息发送到远程API进行处理,并回复处理后的消息。脚本还允许为每个好友分配一个唯一的随机 ID,以便跟不同的好友聊天并维护聊天记忆。

    2024年02月09日
    浏览(42)
  • 微信小程序接口自动化-获取微信code

    https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 小程序登陆需要在小程序内部调用 wx.login() 的方法拿到 code,然后去请求服务获取到 token,后续的接口才能请求。 如何获取 code 去进行token获取。 Python 使用minium,JS 使用miniprogram-automator,这是微信官方提供的 UI 自动

    2024年02月08日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包