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 有什么作用?

最简洁的方式,莫过于图。

Webhook url

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 如下:
QR code

然后,你就可以和我的bot进行对话了。
bot

搭建步骤

本部分请参考转载内容line-bot-Tutorial,内容是繁体书写,不影响阅读。再次表示感谢作者的付出。


环境

本人实践环境及所需工具。

  • Windows server 2008 r2
  • Heroku
  • line-bot-sdk-python
  • flask
  • git
  • python 3.6.1

部署

我的源码已上传至github,请查看line-bot-flaskr。

部署成功后,会在Heroku 中看到以下内容:
Heroku deploy

注意事项

1.填入 webhook url 后不需要进行verify.

我使用 line-bot-sdk-python當我按下 VERIFY,出现了如图所示所示错误,不影响bot的使用。原因是点击verify时,会返回一个虚拟的reply_token,所以failed。

alt tag

本人的webhook url :
这里写图片描述
关于这个问题的详细解释,请查看我提交的issue.

2.部署过程中,请创建一个独立的Python运行环境,并保证是在虚拟环境下进行的。

虚拟环境有个标志(env),如下图:
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

  1. webhook url cannot be verified.

参考网址

  1. 两个教学视频:

    • Youtube Demo Tutorial V1

    • Youtube Demo V2

  2. line-bot-sdk-python

  3. Line Echo Bot on Django
    (这篇文章很好,内部写了两种webhook的处理方式。)
  4. line messaging-api
  5. line-bot-Tutorial

以上为一家之言,如有不妥当之处请指出:D

1 0
原创粉丝点击