这里将重点介绍,在自己没有服务器的情况下,如何在微信小程序里直接调用小白接口。

前提

假设你已经开通微信小程序,如果还没有,可前往微信公众平台开通: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.js  
let okayapi = 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代理;如果没有自己的服务器也不要紧,可参考上面的接入指南。

小白接口有哪些功能?

简单说一下,小白接口为小程序开发提供了较多接口,免费,可以直接调用。你可以把一些数据通过接口存到你的云端数据库(可以自己建表、加表字段,也可以使用自己的数据库,或默认的云端数据库)。例如这样: enter image description here

使用小白接口进行数据的处理很简单,例如需要获取某个id的数据,请求的接口,以及返回的数据示例格式如下(其他的接口使用示例,基本上需要的数据接口都有提供哦):
http://api.okayapi.com/?s=App.Table.Get&model_name=git_project&id=6

返回的数据示例:

{
    "ret": "200",
    "data": {
        "err_code": "0",
        "err_msg": "",
        "data": {
            "id": 6, // 数据ID(系统保留字段,固定返回)
            "uuid": "", // 用户ID(系统保留字段,固定返回)
            "add_time": "2017-11-12 09:38:45", // 添加时间(系统保留字段,固定返回)
            "update_time": "", // 最后更新时间,没有时返回空字段串(系统保留字段,固定返回)
            "ext_data": "", // JSON格式的扩展字段,没有时返回空字段串(系统保留字段,固定返回)
            "git_name": "",
            "git_url": "",
            "git_author": "dogstar"
        }
    },
    "msg": ""
}

还有现成的会员模块,可以直接登录、注册、修改密码、进行账号联登等,也可以看到注册的用户,如:
enter image description here

还有更赞的功能,也可以接入微信平台的小程序接口哦,只需要在这配置一下, enter image description here

就可以调用 微信小程序获取微信基本信息 接口,获取微信信息啦~~~~

这些在小白接口的官网(https://www.okayapi.com/)上都有介绍哦,还有视频教程。基本上,搭配小程序,可以开发很多自己的快应用啦~~~

在小白接口上,你可以存放很多自己的数据,与微信小程序搭配起来开发,你就能开发任何应用啦~~