Line-bot Webhook 创建与部署
来源:互联网 发布:c语言打开文件目录 编辑:程序博客网 时间:2024/06/06 05:07
Line-bot Webhook 创建与部署
前言
最近在研究LINE bot,通过搭建环境,编写webhook,终于实现bot与line 用户的对话。此过程并不是一帆风顺,期间遇到很多问题,咨询了很多朋友,在此表示感谢,特别感谢line-bot-sdk-python 的维护者。
line-bot 实现reply功能的关键在于Webhook
的编写。本文使用了flask框架来编写Webhook. 在此,就需要解决两个问题:
- 1. Webhook 是什么?
- 2. Webhook 怎么用?
1. Webhook 是什么?
官网解释: Receive notifications in real-time when a user sends a message or friends your account.
When an event, such as when a user adds your account or sends a message, is triggered, an HTTPS POST request is sent to the webhook URL that is configured on the Channel Console.
咋一看,似懂非懂。可参考github或者coding中钩子的思想。
意思是 当有好友添加你或者发消息给你时,会触发一个事件,然后 就会发送一个HTTPS POST请求到你的 webhook url
.(不懂没事,后面还会提到,本文的重点。)
2. Webhook 有什么作用?
最简洁的方式,莫过于图。
LINE bot的运作流程是这样的:
1. 使用者传送消息到LINE bot账号;
2. LINE bot收到消息会将消息post给Webhook URL;
3. Webhook URL就是我们所说的web service,负责实际处理的消息。
从问题1和问题2,我们可知,我们需要填写一个webhook url
, 且必须是HTTPS协议。而这个 webhook rul
对应的就是我们编写webhook生成的。
这里,我是将项目部署在 Heroku,免费,且支持HTTPS. 不足的是,因为是国外的一个云服务器,反应略慢。
另外,你们也可尝试 ngrok
.
效果图
先看效果,再看值不值得学。
本文的目的在于webhook url
, 所以这里我做了一个很简单的line-bot,支持简单的自动应答功能。
可以体验下,添加我的bot为好友,QR code 如下:
然后,你就可以和我的bot进行对话了。
搭建步骤
本部分请参考转载内容line-bot-Tutorial,内容是繁体书写,不影响阅读。再次表示感谢作者的付出。
环境
本人实践环境及所需工具。
- Windows server 2008 r2
- Heroku
- line-bot-sdk-python
- flask
- git
- python 3.6.1
部署
我的源码已上传至github,请查看line-bot-flaskr。
部署成功后,会在Heroku 中看到以下内容:
注意事项
1.填入 webhook url
后不需要进行verify.
我使用 line-bot-sdk-python當我按下 VERIFY,出现了如图所示所示错误,不影响bot的使用。原因是点击verify时,会返回一个虚拟的reply_token,所以failed。
本人的webhook url
:
关于这个问题的详细解释,请查看我提交的issue.
2.部署过程中,请创建一个独立的Python运行环境,并保证是在虚拟环境下进行的。
虚拟环境有个标志(env),如下图:
3. 多用 Heroku logs --tail
查看日志,从日志中你就可以找到大多数错误的原因。
总结
本文的重点是在构造webhook url
.
主要步骤如下:
1. 申请一个messaging api 的账号;
2. 书写callback函数,并部署到Heroku;
(代码可直接download我的github源码,执行过程请参照 Deploying-Flask-To-Heroku )
3. 进行bot与好友对话,进行测试。
部署花了我很长时间,需要对git很熟悉,一步一步的来。
我的源码已上传至github,请查看line-bot-flaskr。
链接
Github issue
- webhook url cannot be verified.
参考网址
两个教学视频:
Youtube Demo Tutorial V1
Youtube Demo V2
line-bot-sdk-python
- Line Echo Bot on Django
(这篇文章很好,内部写了两种webhook的处理方式。) - line messaging-api
- line-bot-Tutorial
以上为一家之言,如有不妥当之处请指出:D
- Line-bot Webhook 创建与部署
- line-bot-Tutorial
- webhook开发环境部署
- webhook 挂钩自动部署
- git webhook 代码自动部署
- jenkins+gitlab+webhook自动部署
- 使用bot service创建azure bot
- Webhook 实践 —— 自动部署
- php实现webhook自动部署代码
- PHP 结合 WebHook 实现代码自动部署
- gogs结合git-webhook自动部署
- php项目自动部署(利用webhook)
- Webhook 实践 —— 自动部署
- Bot Framework使用Direct Line实现第三方渠道调用Bot服务
- 在git.oschina上使用WebHook自动部署
- 利用WebHook实现PHP自动部署Git代码
- (git)Bitbucket使用WebHook实现自动部署PHP代码
- Jenkins+git+webhook自动触发部署和测试任务
- Volley源码解析
- nodejs&&git&&cmd&&npm代理及仓库配置
- Java并发编程系列之二:重排序与顺序一致性
- vb hair (发)
- mybatis学习记录
- Line-bot Webhook 创建与部署
- tp5 全
- Java策略文件
- 【HTML】7.其他标签
- eclipse中禁用JS验证
- Dijkstra
- (转)Android中解析JSON格式数据常见方法合集
- 10分钟了解c++中vector基本内容
- centos7 docker容器报 docker Failed to get D-Bus connection 错误