这里将重点介绍,在自己没有服务器的情况下,如何在微信小程序里直接调用小白接口。
前提
假设你已经开通微信小程序,如果还没有,可前往微信公众平台开通:https://mp.weixin.qq.com
假设你已经开通小白接口,如果还没有,可到https://www.okayapi.com/?f=mwx免费注册开通
源代码
本示例源代码可到码云上下载,点击下载:https://gitee.com/dogstar/okayapi-demo。
最终运行效果:
关键配置
修改request合法域名
首先,登录微信公众号平台,进入:设置 - 开发设置 - 服务器域名,修改request合法域名,修改为你当前所在的小白接口域名。小白接口已支持HTTPS访问。如下:
如果不清楚自己所在的域名,可登录小白后台,进入:系统设置 - 我的套餐,查看接口域名。如:
注意!并不是全部的所在域名都是https://api.okayapi.com,只有在这设置后,才能允许在小程序中请求接口。
修改app.js里的globalData
然后,下载本接入示例的代码,使用微信开发者工具(点击下载)打开,并修改app.js里的globalData配置。如下:
关于APP_KEY和APP_SECRECT,可以在前面我的套餐里找到。
配置完成后,我们就可以开始在小程序里进行功能开发啦。下面来看,如何编写代码请求小白接口。
先在你的utils目录内文件里添加okayapi.js和md5.js这两个文件。然后在你的index.js文件内,先引入okayapi.js,即:
//index.jsletokayapi =require('../../utils/okayapi.js')
通过wx.request请求小白接口
然后,使用微信提供的wx.request对小白接口发起请求。需要注意的是,传递的参数须经过okayapi.enryptData()进行加密,在返回的结果中的wxRes.data才是小白接口的返回结果。
/**
* 小白接口请求示例
*/
okayApiHelloWorld: function(e) {
/**
* 准备接口参数
*/
let params = {
s: "Hello.World", // 必须,待请求的接口服务名称
name: "dogstar" // 可选,根据接口文档,补充更多接口参数
};
let _self = this
/**
* 对小白接口发起请求
*/
wx.request({
url: app.globalData.okayapiHost,
data: okayapi.enryptData(params),
success: function (wxRes) {
// TODO:实现你的梦想……
let res = wxRes.data
if (res.data && res.data.err_code == 0) {
// TODO:请求成功
console.log('ok: ', res.data)
_self.setData({
motto: res.data.title
})
} else {
// TODO:当前操作失败
console.log('fail: ', res)
_self.setData({
motto: res.data.err_msg
})
}
}
})
}
调用成功的情况下,会看到类似这样的调试信息:
使用PHP代理请求小白接口
以上是针对自己没有服务器下,微信小程序直连小白接口的接入指南。如果自己有服务器,并且不能修改现在微信小程序上的request合法域名时,则可以使用上面介绍的PHP代理。PHP代理的使用更简单,只需要将PHP代理文件上传到你的服务器上,然后在微信小程序请求接口时,链接改为刚才PHP代理的链接即可。这种使用场景,更为简便,不需要修改request合法域名,也不需要修改app.js里的globalData配置,也不需要在wx.request进行okayapi.enryptData()加密。因为这些都全部移到了PHP代理内实现,因此也更为安全。
即调用链如下:
// 自己没有服务器(通过wx.request直接请求小白接口)
微信小程序 -> 小白接口
// 自已有服务器(通过PHP代理中转请求小白接口)
微信小程序 -> 自己服务器的PHP代理 -> 小白接口
对于自己有服务器的情况,推荐使用PHP代理;如果没有自己的服务器也不要紧,可参考上面的接入指南。
在小白接口上,你可以存放很多自己的数据,与微信小程序搭配起来开发,你就能开发任何应用啦~~