内容简介:上一篇文章:我使用了自己的開源套件
上一篇文章: [C#][Line] 使用 Line Notify 開發訊息通知機器人 – 註冊篇
我使用了自己的開源套件 LexLibrary.Line.NotifyBot ,直接從 NuGet 就可以下載安裝,節省了許多串接 API 時所需的開發與測試時間,只需安裝套件後即可快速開發 Line Notify Bot!!
- 從 管理登錄服務 找到剛剛我們註冊的新項目,取得
Client ID與Client Secret - 打開
Startup.cs找到ConfigureServices方法,並在這裡新增下列程式碼
services.AddLogging(); services.AddHttpClient(); services.AddLineNotifyBot(new LineNotifyBotSetting { ClientID = "", ClientSecret = "", AuthorizeApi = "https://notify-bot.line.me/oauth/authorize", TokenApi = "https://notify-bot.line.me/oauth/token", NotifyApi = "https://notify-api.line.me/api/notify", StatusApi = "https://notify-api.line.me/api/status", RevokeApi = "https://notify-api.line.me/api/revoke" }); - 接著需要使用 Client Redirect 的方式讓使用者登入 Line 並授權給系統權限,我已經在套件裡面封裝好方法了,只要使用
LineNotifyBotApi.GenerateAuthorizeUrl即可取得 Redirect Url。
string callBackUrl = string.Format("{0}://{1}{2}", Request.Scheme, Request.Host, Url.Action("CallBack")); string clientAuthorizeUrl = _lineNotifyBotApi.GenerateAuthorizeUrl(callBackUrl, "1234");※1234這個參數可以拿來做 XSS 驗證避免被攻擊 - 使用者授權完後 Line 會 CallBack 到上面定義好的網址,可以用
AuthorizeCallbackDTO這個物件接收參數
public IActionResult CallBack(AuthorizeCallbackDTO callbackDTO) { // 可能是第三方攻擊 if (callbackDTO.State != "1234") { return new UnauthorizedResult(); } return RedirectToAction("Index", new { callbackDTO.Code }); } - 利用
AuthorizeCallbackDTO.Code的值去呼叫LineNotifyBotApi.Token,可以取得發送訊息給使用者的 AccessToken
var apiResult = await _lineNotifyBotApi.Token(new TokenRequestDTO { Code = code, RedirectUri = callBackUrl }); ViewBag.AccessToken = apiResult.Access_Token; - 取得 AccessToken 後就可以呼叫
LineNotifyBotApi.Notify發送訊息給使用者囉!
var apiResult = await _lineNotifyBotApi.Notify(new NotifyRequestDTO { AccessToken = accessToken, Message = message }); ViewBag.ResultJson = JsonConvert.SerializeObject(apiResult, Formatting.Indented); - 我有寫一個簡單的範例放到 GitHub 供給大家參考,有問題歡迎在下方留言給我。
以上所述就是小编给大家介绍的《[Line] 使用 Line Notify 開發訊息通知機器人 – 程式開發》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 佈署 Angular 應用程式至 IIS 虛擬目錄 / 應用程式
- 佈署 Angular 應用程式至 IIS 虛擬目錄 / 應用程式
- matlab—方程式求根
- 八、Golang过程式编程
- 如何降低程式碼複雜度 ?
- 算法系列(1):Google方程式
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Responsive Web Design
Ethan Marcotte / Happy Cog / 2011-6 / USD 18.00
From mobile browsers to netbooks and tablets, users are visiting your sites from an increasing array of devices and browsers. Are your designs ready? Learn how to think beyond the desktop and craft be......一起来看看 《Responsive Web Design》 这本书的介绍吧!