Line Notify 實做與測試

Line Notify 可以免費讓我們傳送訊息到 Line,在實務應用裡來我們可以把他視為簡訊平台,以降低營運成本,相信未來 Line 應該會開始計費吧。
接下來教大家怎麼去整合Line Notify.
首先去Line Notify 網站登入自己的帳號,並登錄一個服務,網址:https://notify-bot.line.me/zh_TW/,登入服務中的 Callback URL 最多可以填寫 5個。

註冊畫面

接下來是開發作業
1. 第一步要整合:Authentication,使用者會在Line Notify 上登入後,選定接收訊息是 1對1 還是要用群組,完成後他會回傳至你傳入的 redirect_uri,此時使用者的 Line 也會接收到和你連動的訊息,並提供你 code 和 state,稍後就可以透過這個 code 去取得這個使用者的 access_token,state 這個可以做為 CSRF 運用,例如你可以為內部使用者產生一組安全加密後的文字,在redirect_uri 時你可以做為驗證並知道是那為位使用,增加系統的安全性。
我使用Javascript 直接轉到 Authorize 頁面去, clientId 和 redirectUri 要換成你的值。

var URL = 'https://notify-bot.line.me/oauth/authorize?';
URL += 'response_type=code';
URL += '&client_id='+clientId;
URL += '&redirect_uri=' + redirectUri;
URL += '&scope=notify';
URL += '&state=abcde';
window.location.href = URL;


response_mode 預設是 redirect,可以用 form_post 讓他回傳至 redirec_uri 時改用 post,此參數非必填。

  1. 在redirect_uri 裡,這裡我用 nodejs 及 request 物件去取得我需要的 access_token,當然你也可以透過PostMan 來操作,回傳的body ,若是status = 200 時,你就可以抓取access_token了。
    const formData = {
      grant_type :'authorization_code',
      code :req.query.code,
      redirect_uri :'http://localhost:3000/callback',
      client_id : 'XXXXXX' ,
      client_secret :'XXXXXXXXXX',
    };
    request.post('https://notify-bot.line.me/oauth/token', {form:formData} ,  function(err,httpResponse,body){ 
      console.log('body:',body);
    });
  1. 接下來我們直接使用 curl 直接發送訊息
    curl -X POST -H 'Authorization: Bearer your_access_token' -F 'message=測試訊息' https://notify-api.line.me/api/notify

透過上面做法就可以把他整合至企業系統內做為發送訊息的功能了。

Related Posts

發佈留言