需求目标:
微信小程序云开发使用云函数写后端接口获取微信用户token。
安装相关文件:参考这位老哥的博客https://blog.csdn.net/u013184970/article/details/105709259/
1.首先在相关云函数安装request请求
npm install --save request
2.安装request-promise环境
npm install --save request-promise
实现:
1.云函数代码:
// 云函数入口文件
const cloud = require('wx-server-sdk')
var request = require('request-promise');
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
const appid = wxContext.APPID //获取appid
const secret = 'a52cd53dc6d*********' //小程序的密钥,微信公众平台生成
const AccessToken_options = {
method: 'GET',
url: 'https://api.weixin.qq.com/cgi-bin/token',//微信小程序服务端提供的链接
qs:{
appid:wxContext.APPID,
secret:secret,
grant_type:'client_credential'
},
json: true
}
//获取AccessToken
const resultValue = await request(AccessToken_options);
const token = resultValue.access_token;
return {
resultValue,
token
}
}
代码图:
2. 页面js文件
bindGetUserInfo:async ()=>{
//获取用户信息
let res = ''
try{
res = await wx.getUserProfile({lang: "zh_CN", desc: '用于登录'})
} catch (e) {
wx.showToast({title: '获取用户信息失败', icon: "none", duration: 1500})
return
}
wx.showLoading({
title: '正在登录'
})
let data = '' //返回是否成功的标志
//获取登录信息
const r = await wx.login({})
if (!r) { //如果为空表明获取失败
wx.showToast({title: '登录失败,请重新登录', icon: "none", duration: 1500})
wx.hideLoading()
return
}
const code = r.code;
if(res.rawData && res.signature){
let params = {
raw_data: res.rawData,
signature: res.signature,
code: code
}
//调用云函数
wx.cloud.callFunction({
name:'getUserInfoToken' //云函数名称
}).then(res=>{
console.log("res5555")
console.log(res)
}).catch(res=>{
console.log("res55888")
console.log(res)
})
wx.hideLoading()
},
效果图: