LineBot - 身份验证

因为 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
    
    #... 以下省略

这样就可以确保只有自己可以使用相关的功能,日後如果想要扩大使用范围,也可以增加帐号相关的资料,让每个使用者都可以使用自己的帐号来操作。不过暂时还是自己用了。

本来今天是要把这个程序放到云端去的,不过试了几个免费的云端方案,暂时没有成功,只好明天再试试。今天就稍微水一下。


<<:  [Day18] - Django-REST-Framework API 呼叫及介面操作

>>:  Flutter基础介绍与实作-Day17 Onboarding、Login、Sign Up范例实作(4)

[Day11] swift & kotlin 实作篇!(2) 建立专案

swift 开启Xcode, 点选 Create a new Xcode project swift...

【Day 06】LeetCode:Two Sum ( 用 JavaScript 学演算法 )

我们继续透过 LeetCode #1 Two Sum 来实际感受解决问题的过程 ( 题目连结 ) 一...

Day 27 - 利用 WireGuard 建立点对点隧道

今天来与大家分享,透过 WireGuard 建立点对点隧道。 我们常用的 PTP Tunnel,像是...

祖国的幼苗祖国管

故事简述 据《北京商报》报导,大陆国务院27日发布《中国儿童发展纲要》(2021-2030年),其中...

范例一:使用MNIST资料进行训练与模型部署

在第一个范例中将会使用MNIST手写办识资料集进行训练与模型部署. MNIST说明 MNIST da...