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

news2024/11/29 8:43:19

var pc = new WXBizDataCrypt(appid, session_key);

这段代码是使用微信官方提供的 WXBizDataCrypt 类来解密微信运动数据。

WXBizDataCrypt 是一个用于解密微信开放平台返回的加密数据的类,它需要传入两个参数:appid 和 session_key。其中,appid 是小程序的 AppID,session_key 是微信服务器返回的会话密钥。

在这段代码中,首先获取到了微信运动返回的加密数据(encryptedData)和初始向量(iv),然后创建了一个 WXBizDataCrypt 对象,将 appid 和 session_key 作为参数传入。最后,调用该对象的 decryptData 方法对加密数据进行解密,得到解密后的数据 data。
var DataCrypt = require('../../utils/DataCrypt.js');

Page({

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

	/*这段代码是使用微信小程序登录并获取用户步数的示例代码。
	首先,调用 wx.login() 方法获取用户的登录凭证(code)。
	然后,将 appid、secret 和 code 发送到微信服务器进行验证,获取 session_key。
	接着,将 appid 和 session_key 作为参数传递给 getWeRunData() 方法,获取用户的步数信息。
	最后,在控制台输出用户的步数信息。*/
	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() {

	}
})

以上代码中的 “你的小程序密钥”这个在哪里获取

“你的小程序密钥”是指小程序的 AppSecret,可以在微信公众平台中获取。具体步骤如下:

1. 登录微信公众平台(https://mp.weixin.qq.com/);
2. 进入“开发”-“基本配置”;
3. 在“服务器配置”中可以看到 AppID 和 AppSecret;
4. 将 AppSecret 复制到代码中的 secret 变量中即可。

参考:

https://cloud.tencent.com/developer/article/2225439
在这里插入图片描述
https://blog.csdn.net/weixin_60046761/article/details/137227944
在这里插入图片描述
在这里插入图片描述
https://huaweicloud.csdn.net/64eea6836ffa502025761830.html
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何重置root用户的密码

即进入Linux操作系统的救援模式去重置密码。 1.首先重启机器, 2.进入grup菜单,按上下键盘,让系统的启动停在这个界面, 3.选择这个grup菜单的第一项,可以看界面下面的提示,按字母e编辑这个系统的启动配置…

STL —— stack、queue

博主首页: 有趣的中国人 专栏首页: C专栏 目录 1. 容器适配器 2. 栈的模拟实现 3. 队列的模拟实现 4. 双端队列deque 4.1 deque的原理介绍 4.2 deque的缺陷 4.3 为什么选择deque作为stack和queue的底层默认容器 本篇文章主要讲解 stack 和 queue …

基于SpringBoot的“银行OA系统的设计与实现”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“银行OA系统的设计与实现”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 用户登录界面 管理员主界面 员工基本档…

【C++从练气到飞升】07---内存管理

🎈个人主页:库库的里昂 ✨收录专栏:C从练气到飞升 🎉鸟欲高飞先振翅,人求上进先读书。 目录 一、 C/C内存分布 二、 C语言中动态内存管理方式 三、 C中动态内存管理 1. new/delete操作内置类型 2. new和delete操作…

Composer是什么?

Composer是PHP的一个依赖管理工具,它允许开发者声明项目所依赖的代码库,并在项目中自动安装这些依赖。它使用composer.json文件来定义项目的依赖关系,并使用composer.lock文件来锁定依赖的版本,以确保项目的稳定性和可重复性。 Co…

流媒体服务器的应用场景

流媒体服务器的应用场景 流媒体常用协议 RTSP 不适合手机和浏览器端 RTMP 比较适合手机和浏览器端直播 HLS 延迟比较高,适合点播

mysql奇葩问题union

单独执行第一条,有三条结果; union之后,只有一条结果; union自动的把重复数据合并了;

Nacos源码分析,Nacos gRPC服务端通信渠道是如何启动的?

作为SpringCloudAlibaba微服务架构实战派上下册和RocketMQ消息中间件实战派上下册的作者胡弦,我来给大家带来Nacos源码分析的技术文章。 Nacos默认会启动两个gRPC服务端通信渠道,一个用于Nacos集群节点之间的交互(GrpcClusterServer&#xf…

大数据建模理论

文章目录 一、数仓概述1、数据仓库概念1.1 概述1.2 数据仓库与数据库的区别1.3 技术选型和架构 2、数仓常见名词2.1 实体2.2 维度2.3 度量2.4 粒度2.5 口径2.6 指标2.7 标签2.8 自然键/持久键/代理键2.9 退化维度2.10 下钻/上卷2.11 数据集市 3、数仓名词之间关系3.1 实体表&am…

每日一练

这题我主要用的思想是:动态规划 1.状态表示&#xff1a;以i位置为结尾的字符串是否可以用字典表示&#xff0c;然后就可以拆分成 j ~ i 为字典中的最后一个单词&#xff0c;此时 0 < j < i (1.有可能全部为字典的一个单词&#xff0c;2.有可能只有一个字母的单词)&#x…

【SpringBoot】返回参数

返回参数 返回页面返回数据返回 html 代码返回 json 数据两数相加用户登录 返回页面 首先在 static 文件夹中创建 index.html 文件&#xff1a; 代码&#xff1a; <html> <body><h1>hello word!!!</h1><p>this is a html page</p> <…

[C++初阶]类和对象(一)

1.面向过程和面向对象的区分 我们之前都是用C语言写的代码,我们知道C语言是一个面向过程的语言,但是现在我们学的时C,我们都知道C是一种面向对象的语言,那么什么叫面向过程?什么叫面向对象呢? 这里我们来举个例子: 比如我们是开饭店的&#xff0c;客人点了一道菜&#xff0c…

Clustering and Projected Clustering with Adaptive Neighbors 论文阅读

1 Abstract 许多聚类方法基于输入数据的相似性矩阵对数据组进行划分。因此&#xff0c;聚类结果高度依赖于数据相似性学习。由于相似性度量和数据聚类通常是分两步进行的&#xff0c;学习到的数据相似性可能不是数据聚类的最佳选择&#xff0c;从而导致次优结果。在本文中&…

2024 MathorCupB 题 甲骨文智能识别中原始拓片单字自动分割与识别研究

一、问题重述 甲骨文是我国目前已知的最早成熟的文字系统&#xff0c;它是一种刻在龟甲或兽骨上的古老文字。甲骨文具有极其重要的研究价值&#xff0c;不仅对中国文明的起源具有重要意义&#xff0c;也对世界文明的研究有着深远影响。在我国政府的大力推动下&#xff0c;甲骨…

格雷希尔G80L-T系列大口径快速连接器,在汽车膨胀水箱的气密性测试密封方案

副水箱也有人称作膨胀水箱&#xff0c;是汽车散热系统的一个重要组成部分&#xff0c;当水箱里面的温度过高的时候就会产生一定的压力&#xff0c;而副水箱可以根据热胀冷缩来帮助水箱和发动机排出去多余的水&#xff0c;起到一个调节的作用&#xff0c;副水箱由PP/PE塑料注塑而…

49.字母异位词分组(哈希字典)

《代码随想录》学习笔记&#xff0c;原链接&#xff1a;代码随想录 class Solution:def groupAnagrams(self, strs: List[str]) -> List[List[str]]:hash_table {} # 构建哈希字典result []for i in range(len(strs)): # 遍历字符串列表key "".join(s…

【攻防世界】ics-07

<?php session_start();if (!isset($_GET[page])) {show_source(__FILE__);die(); }if (isset($_GET[page]) && $_GET[page] ! index.php) {include(flag.php); }else {header(Location: ?pageflag.php); } <?phpif ($_SESSION[admin]) {$con $_POST[con];$…

Vue3——html-doc-js(html导出为word的js库)

一、下载 官方地址 html-doc-js - npm npm install html-doc-js 二、使用方法 // 使用页面中引入 import exportWord from html-doc-js// 配置项以及实现下载方法 const wrap document.getElementById(test)const config {document:document, //默认当前文档的document…

数字孪生技术在新能源行业的应用

数字孪生技术在新能源行业的应用主要体现在以下几个方面&#xff0c;数字孪生技术在新能源领域的应用有助于提高能源系统的效率和可靠性&#xff0c;推动可持续发展&#xff0c;并为新能源行业的转型升级提供坚实的技术支持。随着技术的进一步发展&#xff0c;数字孪生在新能源…

力扣 | 54. 螺旋矩阵

注意按照顺时针方向进行访问元素&#xff0c;以及每次触发的条件只会满足一个&#xff01; public List<Integer> spiralOrder(int [][] matrix){List<Integer> result new ArrayList<>();int m matrix.length;int n matrix[0].length;int row0,col 0;//…