[開發環境] ngrok 外部網路連開發環境神器 (LINE Messaging 為例)
在開發上有時候會有串接外部服務,如 OAuth、Webhook 的需求,再加上目前各大服務平台都已要求再回 Call 的網址都必須提供 https 憑證才行,這也造成了本地開發階段時的不便,ngrok 就是為了解決此問題而存在的服務。
本文範例下載 : Github,使用 NetCore 6。
使用 net core 6.0 開發的 LINE Bot 機器人的站台為例,範例程式。
LINE Bot 設定
僅第一次使用須執行此步驟,先到 LINE 開發者 後台取得 Channel secret (如下圖紅框處),並將該值貼到程式
public class LineWebHookController : isRock.LineBot.LineWebHookControllerBase
{
[Route("api/LineBotWebHook")]
[HttpPost]
public IActionResult POST()
{
var AdminUserId = "要通知的管理者 ID,通常是你自己的 User ID";
//設定ChannelAccessToken
this.ChannelAccessToken = "APP 的 Channel secret";
}
}
執行開發站台
完成上述設定後即可開啟本地開發站台,如下圖範例使用 http://localhost:5001
Ngrok 設定
第一次使用請先到 ngrok 後台取得 AuthToken
到 ngrok 的目錄,使用 Command Line 執行底下的指令,目的是要使用 ngrok proxy 所接收到的請求轉到本地開發環境,啟動後可以看到底下的畫面。
d C:\Software\ngrok
ngrok config add-authtoken 你的 AuthToken
ngrok http 5001
成功啟動後可以得到一個臨時的對外服務的網址,也可以到後台到 ngrok 後台取得本次啟動後取得的臨時網址。
LINE Bot Webhook 設定
將該臨時網址貼到 LINE Bot 的 Webhook 設定中。
成果展示
在 LINE Bot 機器人發送訊息,可以看到 ngrok 已成功請求轉傳到開發環境,並將執行結果回傳。
留言
張貼留言
您好,我是 Lawrence,這裡是我的開發筆記的網誌,如果你對我的文章有任何疑問或者有錯誤的話,歡迎留言讓我知道。