[Line] 使用 Line Notify 開發訊息通知機器人 – 程式開發

栏目: ASP.NET · 发布时间: 6年前

内容简介:上一篇文章:我使用了自己的開源套件

上一篇文章: [C#][Line] 使用 Line Notify 開發訊息通知機器人 – 註冊篇

我使用了自己的開源套件 LexLibrary.Line.NotifyBot ,直接從 NuGet 就可以下載安裝,節省了許多串接 API 時所需的開發與測試時間,只需安裝套件後即可快速開發 Line Notify Bot!!

  1. 從  管理登錄服務  找到剛剛我們註冊的新項目,取得  Client ID 與  Client Secret
  2. 打開 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"
    });
    
  3. 接著需要使用 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 驗證避免被攻擊
  4. 使用者授權完後 Line 會 CallBack 到上面定義好的網址,可以用 AuthorizeCallbackDTO 這個物件接收參數
    public IActionResult CallBack(AuthorizeCallbackDTO callbackDTO)
    {
        // 可能是第三方攻擊
        if (callbackDTO.State != "1234")
        {
            return new UnauthorizedResult();
        }
     
        return RedirectToAction("Index", new { callbackDTO.Code });
    }
    
  5. 利用  AuthorizeCallbackDTO.Code  的值去呼叫  LineNotifyBotApi.Token ,可以取得發送訊息給使用者的 AccessToken
    var apiResult = await _lineNotifyBotApi.Token(new TokenRequestDTO
    {
        Code = code,
        RedirectUri = callBackUrl
    });
     
    ViewBag.AccessToken = apiResult.Access_Token;
    
  6. 取得 AccessToken 後就可以呼叫  LineNotifyBotApi.Notify  發送訊息給使用者囉!
    var apiResult = await _lineNotifyBotApi.Notify(new NotifyRequestDTO
    {
        AccessToken = accessToken,
        Message = message
    });
     
    ViewBag.ResultJson = JsonConvert.SerializeObject(apiResult, Formatting.Indented);
    
    [Line] 使用 Line Notify 開發訊息通知機器人 – 程式開發
  7. 我有寫一個簡單的範例放到 GitHub 供給大家參考,有問題歡迎在下方留言給我。

以上所述就是小编给大家介绍的《[Line] 使用 Line Notify 開發訊息通知機器人 – 程式開發》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

51单片机应用从零开始

51单片机应用从零开始

杨欣、王玉凤、刘湘黔 / 清华大学 / 2008-1 / 39.80元

《51单片机应用与实践丛书•51单片机应用从零开始》在分析初学者认知规律的基础上,结合国内重点大学一线教师的教学经验以及借鉴国外经典教材的写作手法,对51单片机的应用基础知识进行系统而翔实的介绍。读者学习每一章之后,"实例点拨"环节除了可以巩固所学的内容外,还开辟了单片机应用的视野;再加上"器件介绍"环节,又充实了对单片机从基础到应用所需要的知识。8051单片机不仅是国内用得最多的单片机之一,同时......一起来看看 《51单片机应用从零开始》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

SHA 加密
SHA 加密

SHA 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器