微信小程序搭配小白接口,自己没有服务器也能开发哦

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

前提

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


小白接口有哪些功能?

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


使用小白接口进行数据的处理很简单,例如需要获取某个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": ""
}


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

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


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


此外,小白接口还有很多其他常用、配套的接口,例如:验证码接口、生成二维码接口等,下面是一些展示示例:


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



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



更多专业前端知识,请上 【猿2048】www.mk2048.com

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

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

相关文章

LeetCode:34. 在排序数组中查找元素的第一个和最后一个位置

1、题目描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。 示例 1: 输入: nums [5,7,7,8,8,10], targ…

怎么将自己做好的网站发布到互联网上呢?

如何将自己的网站上传到网站空间。 1.需要有一个上传网站的软件,在这里推荐大家使用 FTP全称是flashfxp这个软件,这个功能功能齐全而且操作简单。大家可以先去下载一下这个软 件 2. 打开FTP,界面如下 3.我们要点击链接按钮,然后FT…

vue动态生成下拉框_vue+elementui 动态创建下拉框

v-for"(domain, index) in dynamicValidateForm.domains":label"‘站点‘ index":key"domain.id">v-for"item in testData":key"item.id":label"item.testName":value"item.id":disabled"item…

[贝聊科技]网页端「应用跳转」技术实现演变

本文作者:Mr.Luo ,贝聊前端经理。本文同时发布于作者 个人博客 。 由于网页传播的便捷性,从网页向APP导流几乎是所有APP厂商都会采用的推广手段,具体来说就是在网页上提供一些触发点(例如按钮、链接)&#…

常见Java错误的十大列表(前100名!)

前10名名单非常受欢迎,有趣且内容丰富。 但是有很多! 如何选择合适的? 这是一个元前10名列表,可帮助您找到前10名的前10名列表。 在更令人讨厌的笔记上: SELECT TOP 10 mistake FROM source1 UNION ALL SELECT TOP 10…

Ubuntu 16.04 下octave的使用入门

SciLab和octave是开源的且免费的矩阵计算工具,二者都有希望成为矩阵计算的新宠。相比之下, octave与MatLab的兼容性更高。octave遵循GPL协议(GNU General Public License),用户可以单独发行octave或者包含在其产品中发…

hydra mysql 爆破_Hydra(爆破神器)使用方法

文本框 textarea 动态显示行数(简单文本编辑器)工作需求做一个文本编辑器简单的. 右边输入文字,左边会显示相应的代码行.清空也会变为1. 废话不多说上代码,自己理解. python中set使用In [2]: a set() # 常用操作1 In [3]: a Out[3]: set() In [4]: type(a) Out[4]: set In [5]…

消除switch语句以获得更好的代码结构

消除switch语句以获得更好的代码结构 代码演化1:纯switch function counter(state 0, action) {switch (action.type) {case INCREMENT:return state 1case DECREMENT:return state - 1default:return state} }用三元运算符代替 const counter (state 0, ac…

HTTP请求中POST与GET的区别

一、原理区别 一般我们在浏览器输入一个网址访问网站都是GET请求;在FORM表单中,可以通过设置Method指定提交方式为GET或者POST提交方式,默认为GET提交方式。 HTTP定义了与服务器交互的不同方法,其中最基本的几种:GET,P…

Linux服务器配置---安装vsftpd

安装vsftpd 大多数Linux系统都使用vsftpd,因此这里我们也安装vsftpd 1、安装vsftpd [rootlocalhost phpMyAdmin]# yum install -y vsftpd Loaded plugins: fastestmirror, refresh-packagekit, security Installed: vsftpd.i686 0:2.2.2-11.el6_4.1 …

Java方法中的参数太多,第1部分:自定义类型

我认为构造函数和方法中冗长的参数列表是Java开发中的另一个“ 危险信号 ”,就逻辑和功能而言,它们不一定是“错误的”,但通常暗示当前或将来出现错误的可能性很高。 在一小部分帖子中,我介绍了一些可用于减少方法或构造函数的参数…

mysql怎么制作柱状图_从数据库中取出最近三十天的数据并生成柱状图

在终端用cd 命令进入文件目录说明:此处例子我是拿项目中的一个例子讲解的。1、新建一个项目 :用终端输入:zf create project Airline 格式:zf create action project project-name 备注:这些格式可以在终端输入zf 查看…

关于ES6的Promise

JavaScript的异步处理 提到JavaScript的异步处理,也许很多人和我一样想到利用回调函数。 例如: firstAsync(function(data){//处理得到的 data 数据//....secondAsync(function(data2){//处理得到的 data2 数据//....thirdAsync(function(data3){//处…

为hexo博客添加基于gitment评论功能

关于gitment gitment其实就是利用你的代码仓库的Issues,来实现评论。每一篇文章对应该代码仓库中的 一个Issues,Issues中的评论对应你的博客每篇文章中的评论。如果你是用github的博客的话 用起来将会十分的方便。 注册github应用 首先需要在这注册一个OAuth Applic…

[转]我是如何走进黑客世界的?

*本文原创作者:MyselfExplorer;翻译编辑:楼兰,本文属FreeBuf原创奖励计划,未经许可禁止转载 我想给你一把打开这扇门的钥匙,而你要做的便是静静的聆听接下来的故事。挖掘 0day 一般需要掌握fuzzing&#xf…

使用Servlet 3.0,Redis / Jedis和CDI的简单CRUD –第1部分

在这篇文章中,我们将构建一个简单的用户界面。 数据将存储在Redis中。 为了与Redis交互,我们将使用Jedis库。 CDI用于Depedency Injection,而Servlet 3.0用于视图。 让我们从Redis / Jedis部分开始。 您可以在这些 帖子中找到有关Redis和Jed…

Socket.io 深入理解

最近在做项目优化工作时,用到了Socket.io , Socket.io 文档比较少, 结合官网介绍以及自己在项目开发中的摸索,总结如下内容; Socket.io将Websocket和轮询 (Polling)机制以及其它的实时通信方式封装成了通用…

python填表_小Python填表得到d

我正在尝试使用Scrapy从网站自动下载数据。在我要做的是:使用我的凭据登录网站通过在“RIC”行中写入代码并选择感兴趣的时段来选择我想要的数据单击“获取数据”后,将生成.csv文件,我可以从“下载/”url下载该文件,其中我的所有文…

如何使用异步Servlet来提高性能

这篇文章将描述一种性能优化技术,适用于与现代Web应用程序相关的常见问题。 如今的应用程序不再只是被动地等待浏览器发起请求,而是希望自己开始通信。 一个典型的示例可能涉及聊天应用程序,拍卖行等–共同点是以下事实:大多数时间…

我理解中的“大前端”/“大无线”

本文内容较长,大概需要15分钟时间阅读。 内容包含五部分:前言,NodeJS职能变化,ReactNative的大规模应用,专门的架构组职能,总结。主要是介绍我所在团队最近的一些变化和思考。 更多信息可以加入我的小密圈关…