小程式介面越過域名和https限制方法
都知道小程式上線介面需要域名,還需要https,就算是體驗版的都是需要的,這樣就篩選掉一大批開發者,像我這樣只有學生輕量級伺服器的學生要開發自己的小程式就很為難,但今天確驚奇的在小程式社群裡面找到了用ip寫介面的方法。
這就是用雲函式,官方文件上面寫的雲函式是隻提供了一套對自己資料庫的增刪改查。提供這套功能的框架是 wx-server-sdk
,由於雲開發的環境執行在node.js中,我們開發者工具這邊也要安裝node.js,幸好我以前研究雲函式的時候在自己電腦預安裝了node.js,所以這邊可以直接執行,話不多說,放碼過來。
用PHP隨便寫個介面,返回點東西,放到自己的伺服器中。
<?php $id = '我是id'; $name = '我是name'; $ret=array('id'=>$id,'name'=>$name); echo urldecode(json_encode($ret, JSON_UNESCAPED_UNICODE)); ?>
然後新建一個雲函式,具體怎麼建可以參考 ofollow,noindex">官方文件
然後在該雲函式的目錄中安裝 request-promise 依賴,在你電腦中找到你的雲函式目錄地址,按住shift,右鍵空白處,在此處開啟cmd,然後輸入 n pm install request-promise 回車。
接著在你新建的雲函式中的index.js中插入以下程式碼
//request-promise是剛剛你在雲函式的目錄下安裝的依賴 const rq = require('request-promise') exports.main = async(event, context) => { var res = await rq( { method: 'post', uri: 'http://你的ip/aa.php', body: { xxx: '', }, //引數 headers: {}, //請求頭 json: true //是否json資料 } ).then((body) => { return body }).catch(err => { return err; }) return res; }
這樣就好了,現在去請求看看。
onLoad: function () { // 初始化 wx.cloud.init() wx.cloud.callFunction({ name: 'proxy', }).then(res => { console.log(res) }) },
返回:
正常返回,以後ip也可以寫介面了,只不過雲服務還是有很多確點的,返回慢,次數限制等。但對於學習而言足夠了。