iT邦幫忙

2021 iThome 鐵人賽

DAY 16
0

因為 LineBot 是利用 Line官方帳號的機制在運作,所以只要加入好友,就可以使用,我只是要自己用的,所以希望加一個驗證的機制,目前我的作法是先取得我自己的 user_id,然後在程式碼加入 user_id 的驗證,只要不是我自己,就不執行相關的功能

  • 取得 user_id
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
    global action

    # 取得使用者 id
    user_id = event.source.user_id

    # 將 user_id 顯示出來
    print("user_id", user_id)

    #... 以下省略

以上程式加好之後,先執行一次,然後可以在命令視窗看到類似以下的輸出
get user id
把 user_id 後面那一長串複制下來

  • 增加 user_id 檢查
@handler.add(MessageEvent, message=TextMessage)
def handle_message(event):
    global action

    # 取得使用者 id
    user_id = event.source.user_id

    # 這一段沒有一定要
    profile = line_bot_api.get_profile(user_id)

    # user_id 已經取得,這一段就可以刪除了
    # print("user_id", user_id)

    if user_id != "剛剛複製的 user_id":
        line_bot_api.reply_message(
            event.reply_token,
            TextSendMessage(text="親愛的 {name} 您好,感謝您加入好友,目前相關功能暫時還未開放,請日後再來試試".format(name=profile.display_name))
        )
        return
    
    #... 以下省略

這樣就可以確保只有自己可以使用相關的功能,日後如果想要擴大使用範圍,也可以增加帳號相關的資料,讓每個使用者都可以使用自己的帳號來操作。不過暫時還是自己用了。

本來今天是要把這個程式放到雲端去的,不過試了幾個免費的雲端方案,暫時沒有成功,只好明天再試試。今天就稍微水一下。


上一篇
LineBot - 圖文選單
下一篇
LineBot - 部署 api
系列文
永豐金融APIs - 從零開始到放棄!?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言