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

本文介绍了在飞书上集成 BOT 的详细步骤,包括注册飞书、创建 APP、申请权限、发布新版本、激活并配置等。还说明了如何获得组织成员信息、创建 BOT、推送纯文本和富文本消息等,最后提及发布给所有飞书用户及相关系列文章。

飞书与聊天机器人

飞书对聊天机器人(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)

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值