Feishu(飞书) 聊天机器人应用(1/3)- 开发快速入门

开源 同时被 3 个专栏收录
484 篇文章 1 订阅
97 篇文章 4 订阅
32 篇文章 12 订阅

飞书与聊天机器人

飞书对聊天机器人(Chatbot)的支持非常全面,在私聊、群聊和外部群,都支持创建机器人和机器人对话。

在这里插入图片描述

下文介绍,如何在飞书上,集成一个 BOT。

注册飞书

https://open.feishu.cn/?lang=en-US

创建 APP

在这里插入图片描述

申请权限

加入我们要开发 Chatbot, 获得管理组织信息。在 Permissions 相关区域选择对应的权限,这时会提示,要发布这个应用后,才生效。

在这里插入图片描述

发布新版本

创建新版本,添加描述,添加 Icon,提交审核。
这时候,是自企业内部使用,自动通过。
在这里插入图片描述

激活并配置

登陆企业的飞书后台,查看应用的列表。

https://chatopera.feishu.cn/admin/appCenter/manage

在 App List 中,找到刚刚创建的应用。
在这里插入图片描述
设置为激活,对所有员工生效。
在这里插入图片描述
从这里可以看到权限列表,稍后我们将使用这些权限。

配置对所有人生效。
在这里插入图片描述

获得组织成员信息

在群里增加 BOT,需要 AT/提到 一个成员时,使用 open_id 关联,那么需要先获得所有的成员对应的open_id, 该过程通过 飞书开发者 API实现,并且分成两个步骤。

获得 access token

在 App 首页得到 AppId 和 AppSecret。

在这里插入图片描述

使用 API 获得 Acess Token,以下给出 bash 脚本。

#! /bin/bash 
###########################################
# Fetch token for Feishu APP
# First install jq
# curl -sS https://webinstall.dev/jq | bash
###########################################

# constants
baseDir=$(cd `dirname "$0"`;pwd)

# functions
function get_token(){
	FEISHU_RESP=`curl --location --request POST 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal/' \
	--header 'Content-Type: application/json' \
	--data-raw '{"app_id": "'$1'","app_secret": "'$2'"}'`

	FEISHU_ACCESS_TOKEN=`echo $FEISHU_RESP | jq -r '.tenant_access_token'`
	echo $FEISHU_ACCESS_TOKEN > /tmp/feishu.token.$1
	echo "Saved token in" /tmp/feishu.token.$1
}

# main 
[ -z "${BASH_SOURCE[0]}" -o "${BASH_SOURCE[0]}" = "$0" ] || return
cd $baseDir/..
source .env

get_token $FEISHU_APP_ID $FEISHU_APP_SECRET

运行结果,token 存储在 /tmp/feishu.token.xx 中。

获得用户的 open_id

curl --location --request GET 'https://open.feishu.cn/open-apis/user/v1/batch_get_id?emails=foo@chatopera.com&emails=bar@chatopera.com' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN'

将 emails 替换为 您的用户的邮箱,将 TOKEN 替换为上一步得到的 access token。

结果

{
    "code": 0,
    "msg": "success",
    "data": {
        "email_users": {
            "foo@chatopera.com": [
                {
                    "open_id": "ouxx",
                    "user_id": "xxx"
                }
            ]
        },
        "emails_not_exist": []
    }
}

创建 BOT

这时,在飞书的一个群里,创建一个 BOT,获得 BOT 的 Webhook 地址。
在这里插入图片描述
假如 webhook 地址是 https://open.feishu.cn/open-apis/bot/v2/hook/xxx

推送纯文本消息

curl --location --request POST 'https://open.feishu.cn/open-apis/bot/v2/hook/xxx' \
--header 'Content-Type: application/json' \
--data-raw '{
    "msg_type": "text",
    "content": {
        "text": "New Updates",
        "title": "Hello"
    }
} '

注意,此处不需要使用 accessToken。

推送富文本消息

curl --location --request POST 'https://open.feishu.cn/open-apis/bot/v2/hook/036f14cf-8408-49b3-bd57-41f2a63f3252' \
--header 'Content-Type: application/json' \
--data-raw '{
    "msg_type": "post",
    "content": {
        "post": {
            "zh_cn": {
                "title": "Project Updates",
                "content": [
                    [
                        {
                            "tag": "text",
                            "text": "You have a new update: "
                        },
                        {
                            "tag": "a",
                            "text": "hello",
                            "href": "http://www.example.com/"
                        },
                        {
                            "tag": "at",
                            "user_id": "ou_d7e2e4a241027xxx"
                        }
                    ]
                ]
            }
        }
    }
} '

注意:

1)使用 tag 定制消息内容,a 代表超链接,at 代表 @text 代表文本,参考 Send post message

  1. 消息中,@ 一个成员,使用 atuser_id 就是之前已经获得的 open_id

在这里插入图片描述

定制对话内容

此时,机器人可以主动向群里推送消息,但是如果在私聊或群聊中,希望机器人回复消息,怎么办?

敬请阅读飞书机器人应用开发的下篇:Feishu(飞书) 聊天机器人应用(2/3)- 定制对话,实现知识库、信息查询、意图识别、多轮对话

发布给所有飞书用户

申请成为飞书 ISV。
https://open.feishu.cn/isv
在这里插入图片描述

本系列文章

参考文档

Use bots in groups

Send post message

Obtain tenant_access_token (custom apps)

  • 4
    点赞
  • 9
    评论
  • 15
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值