微信开放微信运动api接口数据api接口不?

微信小程序-获取微信运动步数的实例代码实战教程
微信小程序-获取微信运动步数的实例代码实战教程,现在运动计步很火,无论是蚂蚁森林,还是微信上都很火爆,本文介绍了微信小程序微信运动步数的实例代码,分享给大家。
微信小程序API-微信运动
https://mp.weixin.qq.com/debug/wxadoc/dev/api/we-run.html
思路:wx.login获取的code请求获取的session_key,wx.getWeRunData获取的iv,encryptData,将它们一起发送到后台解密就行了。
安全顾虑,因为只是示例所以直接传递session_key了,为了安全最好按照下图的方式后存储到Redis中再传递key。
小程序端代码
get3rdSession: function () {
let that = this
wx.request({
url: 'https://localhost/login.php',
code: this.data.code
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
success: function (res) {
var sessionId = res.
that.setData({ sessionId: sessionId })
wx.setStorageSync('sessionId', sessionId)
that.decodeUserInfo()
decodeUserInfo: function () {
let that = this
wx.request({
url: 'https://localhost/decrypt.php',
encryptedData: that.data.encryptedData,
iv: that.data.iv,
session: wx.getStorageSync('sessionId')
method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
// header: {}, // 设置请求的 header
success: function (res) {
let todayStep = res.data.stepInfoList.pop()
that.setData({
step: todayStep.step
onLoad: function () {
let that = this
wx.login({
success: function (res) {
let code = res.code
that.setData({ code: code })
wx.getWeRunData({//解密微信运动
success(res) {
const wRunEncryptedData = res.encryptedData
that.setData({ encryptedData: wRunEncryptedData })
that.setData({ iv: res.iv })
that.get3rdSession()//解密请求函数
后台这使用的是官方版本Demo:先处理login的请求,login.php直接返回session_key,然后再一起请求decrypt.php进行解密。
login.php部分代码
$appid = '你的appid';
$appsecret = '你的appsecret';
$url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$appsecret.'&js_code='.$_GET['code'].'&grant_type=authorization_code';
$content = file_get_contents($url);
$content = json_decode($content);
echo $content-&session_
decrypt.php部分代码
$pc = new WXBizDataCrypt($appid, $sessionKey);
$errCode = $pc-&decryptData($encryptedData, $iv, $data );
if ($errCode == 0) {
print($data . &\n&);
print($errCode . &\n&);> 博客详情
摘要: 开发者可通过该接口来批量获取用户基本信息。最多支持一次拉取100条。
在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同)。公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。
请注意,如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.weixin.qq.com)绑定公众号后,才可利用UnionID机制来满足上述需求。
UnionID机制说明:
开发者可通过OpenID来获取用户基本信息。特别需要注意的是,如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。
获取用户基本信息(包括UnionID机制)
开发者可通过OpenID来获取用户基本信息。请使用https协议。
接口调用请求说明
http请求方式:&GET&https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
access_token
调用接口凭证
普通用户的标识,对当前公众号唯一
返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语
正常情况下,微信会返回下述JSON数据包给公众号:
{&&&&&"subscribe":&1,&&&&&&"openid":&"o6_bmjrPTlm6_2sgVt7hMZOPfL2M",&&&&&&"nickname":&"Band",&&&&&&"sex":&1,&&&&&&"language":&"zh_CN",&&&&&&"city":&"广州",&&&&&&"province":&"广东",&&&&&&"country":&"中国",&&&&&&"headimgurl":&&&&"http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/0",&&&&&"subscribe_time":&,&&&&"unionid":&"&o6_bmasdasdsad6_2sgVt7hMZOPfL"&&&&"remark":&"",&&&&"groupid":&0&}
用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息。
用户的标识,对当前公众号唯一
用户的昵称
用户的性别,值为1时是男性,值为2时是女性,值为0时是未知
用户所在城市
用户所在国家
用户所在省份
用户的语言,简体中文为zh_CN
headimgurl
用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。
subscribe_time
用户关注时间,为时间戳。如果用户曾多次关注,则取最后关注时间
只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。详见:
公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注
用户所在的分组ID
错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):
{"errcode":40013,"errmsg":"invalid&appid"}
批量获取用户基本信息
开发者可通过该接口来批量获取用户基本信息。最多支持一次拉取100条。
接口调用请求说明
http请求方式:&POST&https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=ACCESS_TOKEN
POST数据示例
{&&&&&"user_list":&[&&&&&&&&&{&&&&&&&&&&&&&"openid":&"otvxTs4dckWG7imySrJd6jSi0CWE",&&&&&&&&&&&&&&"lang":&"zh-CN"&&&&&&&&&},&&&&&&&&&&{&&&&&&&&&&&&&"openid":&"otvxTs_JZ6SEiP0imdhpi50fuSZg",&&&&&&&&&&&&&&"lang":&"zh-CN"&&&&&&&&&}&&&&&]&}
用户的标识,对当前公众号唯一
国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语,默认为zh-CN
正常情况下,微信会返回下述JSON数据包给公众号(示例中为一次性拉取了2个openid的用户基本信息,第一个是已关注的,第二个是未关注的):
{&&&&"user_info_list":&[&&&&&&&&{&&&&&&&&&&&&"subscribe":&1,&&&&&&&&&&&&&"openid":&"otvxTs4dckWG7imySrJd6jSi0CWE",&&&&&&&&&&&&&"nickname":&"iWithery",&&&&&&&&&&&&&"sex":&1,&&&&&&&&&&&&&"language":&"zh_CN",&&&&&&&&&&&&&"city":&"Jieyang",&&&&&&&&&&&&&"province":&"Guangdong",&&&&&&&&&&&&&"country":&"China",&&&&&&&&&&&&&"headimgurl":&"http://wx.qlogo.cn/mmopen/xbIQx1GRqdvyqkMMhEaGOX802l1CyqMJNgUzKP8MeAeHFicRDSnZH7FY4XB7p8XHXIf6uJA2SCunTPicGKezDC4saKISzRj3nz/0",&&&&&&&&&&&&&"subscribe_time":&,&&&&&&&&&&&&&"unionid":&"oR5GjjgEhCMJFyzaVZdrxZ2zRRF4",&&&&&&&&&&&&&"remark":&"",&&&&&&&&&&&&&"groupid":&0&&&&&&&&},&&&&&&&&&{&&&&&&&&&&&&"subscribe":&0,&&&&&&&&&&&&&"openid":&"otvxTs_JZ6SEiP0imdhpi50fuSZg",&&&&&&&&&&&&&"unionid":&"oR5GjjjrbqBZbrnPwwmSxFukE41U",&&&&&&&&&}&&&&]&}
用户是否订阅该公众号标识,值为0时,代表此用户没有关注该公众号,拉取不到其余信息,只有openid和UnionID(在该公众号绑定到了微信开放平台账号时才有)。
用户的标识,对当前公众号唯一
用户的昵称
用户的性别,值为1时是男性,值为2时是女性,值为0时是未知
用户所在城市
用户所在国家
用户所在省份
用户的语言,简体中文为zh_CN
headimgurl
用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。
subscribe_time
用户关注时间,为时间戳。如果用户曾多次关注,则取最后关注时间
只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。详见:
公众号运营者对粉丝的备注,公众号运营者可在微信公众平台用户管理界面对粉丝添加备注
用户所在的分组ID
错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):
{"errcode":40013,"errmsg":"invalid&appid"}
支付宝支付
微信扫码支付
打赏金额: ¥
已支付成功
打赏金额: ¥51CTO旗下网站
微信开放平台:朋友圈API参考文档
微信平台支持将图片与文字分享至用户朋友圈。阅读本参考文档之前,你可以先了解一下朋友圈API上手指南。
作者:佚名来源:微信| 03:40
客户端的授权流程
针对没有后台服务器的 App 类型,如移动平台的 App 应用,微信使用 OAuth2.0 的 Implicit Grant 方式授权,流程如下:
用户访问第三方应用,使用到分享至微信朋友圈的功能,应用检测到没有用户的授权信息,于是将用户引导至授权页面;
当用户未登录时,将要求先登录,否则继续下一步;
授权页面为一个对话框,显示应用信息以及请求的访问权限,并提示用户选择允许或拒绝;
对话框将重定向回应用,若授权成功则带上 Access Token,否则带上相应的错误码。
客户端授权流程得到的 Access Token 有效期为 2 小时,过期后需重新走授权流程。
服务器端的授权流程
服务端的授权流程为 OAuth2.0 定义的 Authentication Code Grant
的授权方式,我们推荐朋友圈应用使用服务端的授权流程。在该授权流程中,App 除了可以得到用户的 AccessToken 外还有
RefreshToken, RefreshToken 过期时间为一年。
服务端的授权流程如下:
当用户未登录时,将要求先登录,否则继续下一步;
授权页面为一个对话框,显示应用信息以及请求的访问权限,并提示用户选择允许或拒绝;
当用户允许后,微信将以重定向的方式回到App,并带上一个授权码,否则将提示失败;
第三方应用通过后台访问微信 API,通过授权码换取Access Token和Refresh Token。
通过服务端的授权流程得到的 AccessToken 有效期为 30 天,过期后使用 RefreshToken 即可换取新的 AccessToken。
URL: https://open.weixin.qq.com/oauth
从微信开放平台申请的AppId
response_type
返回类型,值为code或token之一
redirect_uri
授权成功后的重定向页面,默认为App预留在微信的uri
可选参数,所申请授权的资源域,以空格分开,目前仅支持并默认选择post_timeline
可选参数,自定义重定向uri的参数
服务端流程请求连接样例:
https://open.weixin.qq.com/oauth?appid=hello&response_type=code
用户成功授权后返回样例:
HTTP/1.1 302 Found
Location: https://client.example.com/cb?code=SplxlOBeZQQYbYS6WxSbIA
用户拒绝授权的返回样例:
HTTP/1.1 302 Found
Location: https://client.example.com/cb?error=access_denied
客户端流程请求连接样例:
https://open.weixin.qq.com/oauth?appid=hello&response_type=token
用户成功授权后返回样例:
HTTP/1.1 302 Found
Location: https://client.example.com/cb#access_token=ASDFBCDEFGHIJKLMN&expires_in=259200
用户拒绝授权的返回样例:
HTTP/1.1 302 Found
Location: https://client.example.com/cb#error=access_denied
GET /token
获取Access Token
POST /media
GET /media/:media_id
下载附件内容
POST /timeline
发表到朋友圈
GET /token
URL: https://api.weixin.qq.com/token.format
用于通过授权code换取access token和refresh token,或用于通过refresh token换取新的access token。
grant_type
获取的token类型,authentication_code 或 refresh_token
当grant_type为authentication_code时填写,此为用户授权后得到的授权码
refresh_token
当grant_type为refresh_token时填写
redirect_uri
当grant_type为authentication_code时填写,需和oauth步骤所填写的redirect_uri相同
当应用走服务器端的授权流程时,通过该API使用授权码换取access token和refresh token,此时grant_type需设置为authentication_code,请求URL如下:
GET &https://api.weixin.qq.com/token?appid=wx1234hello& &&grant_type=authorization_code&code=4433222&redirect_Uri=& &http%3A//www.example.com/weixin_redirect&
返回样例:
&refresh_token& : &93Zkx2gyQVaeIbS1CTDFSZilrVyj1Q1Ts2UeArlEnbrP6bKDyWAz4WlIHu_
wwasdfLNNLfmn023mNA0nX&,
&access_token&
: &3Zkx2gyQVaeIbS1CTDFSZilrVyj1Q1Ts2UeArlEnbrP6bKDyWAz4WlIHu_Lj
JqUNdYDYlyxrGOw1ywdb4sAyahgskuUBvSSx6EO2oxowQmcwdC3YTDkSJPTF
6yoKpfZkY2mIGBeaMZKsXcfWoTP94g&,
&expires_in&
当access token过期时,可通过refresh token获取新的access token,请求样例:
GET &https://api.weixin.qq.com/token?appid=wx1234abcd& &&grant_type=refresh_token&secret=egs1mwxkfpt459& &&refresh_token=93Zkx2gyQVaeIbS1CTDFSZilrVyj1Q1Ts2UeArlEnbrP6bKDyWAz4WlIHu_wwasdfLNNLfmn023mNA0nX&
返回样例:
&access_token& : &K3Zkx2gyQVaeIbinDDmZ1CTDFSZilrVyj1Q1Ts2UeArlEnbrP6bKDyWAz4WlIHu_
LjJqUNdYDYlyxrGOw1ywdGGb4sAyahgskuUBvSSx6EO2oxowQmcwdC3YTDkSJPTF
6yoKpfZkY2mIGBeaMZKs&,
&expires_in&
POST /media
URL: https://api.weixin.qq.com/media.format
附件类型,目前仅支持image
该API用于上传一个附件到微信服务器,成功后将得到一个媒体id(media_id)表示该附件,从而分享至用户朋友圈。
上传的图片大小限制为2M,如果原图宽度超过640px,微信服务器将对图片进行等比例缩放后存储。
请求样例(使用curl工具):
curl -F &media=@test.jpg& &https://api.weixin.qq.com/media?type=image&access_token=3Zkx2gyQVaeIbS1CTDFSZilrVyj1Q1Ts2UeArlEnbrP6bKDyWAz4WlIHu_LjJqUNdYDYlyxrGOw1ywdb4sAyahgskuUBvSSx6EO2oxowQmcwdC3YTDkSJPTF6yoKpfZkY2mIGBeaMZKsXcfWoTP94g&
返回样例:
&media_id&
: &fPPPmh9EBsgdrqaSJvl6nPvchUfbDxN8lmGTMBN2BWABP_usGso5Qx7raSraaXAT&,
: &image&,
&created_at& :
GET /media/:media_id
URL: https://api.weixin.qq.com/media/:media_id.format
该API用于下载媒体附件。
请求样例(使用curl工具):
curl &https://api.weixin.qq.com/media/fPPPmh9EBsgdrqaSJvl6nPvchUfbDxN8lmGTMBN2BWABP_usGso5Qx7raSraaXAT?access_token=3Zkx2gyQVaeIbS1CTDFSZilrVyj1Q1Ts2UeArlEnbrP6bKDyWAz4WlIHu_LjJqUNdYDYlyxrGOw1ywdb4sAyahgskuUBvSSx6EO2oxowQmcwdC3YTDkSJPTF6yoKpfZkY2mIGBeaMZKsXcfWoTP94g&
该API用于分享内容至用户的朋友圈中,title或media_list两个参数至少选择其中之一。
请求示例 1(使用curl工具):
curl -d &title=hello&coordinates=10.00,10.00&media_list=fPPPmh9EBsgdrqaSJvl6nPvchUfbDxN8lmGTMBN2BWABP_usGso5Qx7raSraaXAT,fPPPmh9EBsgdrqaSJvl6nPvchUfbDxN8lmGTMBN2BWABP_usGso5Qx7raSraaXAT&
&https://api.weixin.qq.com/timeline?access_token=3Zkx2gyQVaeIbS1CTDFSZilrVyj1Q1Ts2UeArlEnbrP6bKDyWAz4WlIHu_LjJqUNdYDYlyxrGOw1ywdb4sAyahgskuUBvSSx6EO2oxowQmcwdC3YTDkSJPTF6yoKpfZkY2mIGBeaMZKsXcfWoTP94g&
成功返回:
&created_at& :
失败返回:
&error& : { &msg&: &content_url is missing&, &code&: 40329 }
请求示例 2:
curl -d &title=Complcated&coordinates=24.00,114.00&media_list=L5JPCzX96wnwcE4Hthh&content_url=http%3A%2F%2Fy.qq.com%2Fi%2Fsong.html%23p%3D7B2273&media_url=http%3A%2F%2Fy.qq.com%2Fi%2Fsong.html%23p%3D7B2273&content_type=music&
&https://api.weixin.qq.com/timeline?access_token=3Zkx2gyQVaeIbS1CTDFSZilrVyj1Q1Ts2UeArlEnbrP6bKDyWAz4WlIHu_LjJqUNdYDYlyxrGOw1ywdb4sAyahgskuUBvSSx6EO2oxowQmcwdC3YTDkSJPTF6yoKpfZkY2mIGBeaMZKsXcfWoTP94g&
请求示例2在微信朋友圈展示的效果图如下::
【编辑推荐】
【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条热点关注头条热点
24H热文一周话题本月最赞
讲师:413812人学习过
讲师:30981人学习过
讲师:228124人学习过
精选博文论坛热帖下载排行
本书深入浅出地说明了如何利用Java、Flash及XML进行Flash富媒体应用程序的开发。
本书知识丰富,内容结构合理,包括:Flash影片应用程序与...
订阅51CTO邮刊

我要回帖

更多关于 微信api接口开发 的文章

 

随机推荐