今天我們將藉由ngrok與postman 推播訊息
首先至ngrok download的頁面選擇 more options => arm的版本(基本上它會自動出現)
再解壓縮至桌面,再於terminal輸入
./ngrok http 5000 //5000是你所選擇的
執行後
若需要保持長時間,需先登入網站取得auth token再執行
./ngrok authtoken 1dfpMdavKKuuJ26kHUnEuYYNW70_3WFDM75PtPLvjHoGPNYN2
./ngrok http 5000 //5000是你所選擇的
接著我們會用到postman,可於此下載至chrome擴充應用
https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=zh_tw
登入後
選擇post模式,貼上你ngrok提供的網址,在body選擇raw的模式,並填入notifyMessage
建立好後,於昨天同一資料夾建立ngrokService.js,宇昨天的程式碼相似,只是建立於http server並使用response 200作為確認
const http = require('http')
const googleHome = require('google-home-push');
const config = require('./config')
console.log(config)
const accent = "zh-CN"
const language = "zh-CN"
const notifyToGoogleHome = http.createServer((request, response) => {
let body = []
request.on('data', (chunk)=>{
body.push(chunk)
}).on('end', ()=>{
body = JSON.parse(body)
const notifyMessage = body.notifyMessage
console.log("It is http body: "+body)
const options = {
language: language,
accent: accent,
}
for(let i = 0; i<config.moudule.length; i++){
const googleHomeIp = config.moudule[i].ip
const myHome = new googleHome(googleHomeIp, options)
console.log(myHome)
myHome.speak(`${notifyMessage}`)
}
}).on("error", (err)=>{
console.log(err.message)
})
response.writeHead(200,{
'Content-Type': 'application/json',
'X-Powered-By': 'bacon'
})
response.end()
});
notifyToGoogleHome.listen(5000);
建立好後,藉由postman進行send動作後即可成功在外網進行資料推播。