本地服务我没有测试,理论上是可行的,只要知道公网IP就行。
官网网站:slack.com/signin
输入邮箱
输入收到的验证码
创建一个工作区
如果是国内网络,这里则会提示不能创建工作区。
输入团队名称
输入昵称
如果没有要邀请的人,直接点击跳过
填写欢迎词
选择免费套餐
这样就完成了账号的注册和工作区的创建。
官方网站:https://api.slack.com/apps
Demo
。channels:history
(读取公开频道的消息)groups:history
(读取私有频道的消息)im:history
(读取直接消息)mpim:history
(读取多方直接消息)chat:write
(允许发送消息)xoxb-...
。保存此令牌。https://yourdomain.com/slack/events
)。这一步暂时先跳过,后台代码在文章下面。
message.channels
(公开频道的消息)message.groups
(私有频道的消息)message.im
(直接消息)message.mpim
(多方直接消息)Slack 会将事件推送到你配置的 Request URL。以下是使用 Python 和 Flask 的示例代码:
pip install flask slack_sdk
from flask import Flask, request, jsonify
from slack_sdk.web import WebClient
from slack_sdk.errors import SlackApiError
app = Flask(__name__)
SLACK_BOT_TOKEN = "xoxb-your-bot-token" # 替换为你的 Bot Token
client = WebClient(token=SLACK_BOT_TOKEN)
@app.route("/slack/events", methods=["POST"])
def slack_events():
data = request.json
# 验证 URL 时,直接返回 challenge 值
if "challenge" in data:
return jsonify({"challenge": data["challenge"]})
# 处理消息事件
if "event" in data:
event = data["event"]
# 忽略子类型为 bot_message 或包含 bot_id 的消息(即机器人自己的消息)
if event.get("type") == "message" and "subtype" not in event and "bot_id" not in event:
user = event.get("user")
text = event.get("text")
channel = event.get("channel")
# 回复用户消息
try:
client.chat_postMessage(channel=channel, text=f"收到你的消息:{text}")
except SlackApiError as e:
print(f"Error sending message: {e.response['error']}")
return jsonify({"status": "ok"})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=3000)
ngrok http 3000
https://abc123.ngrok.io/slack/events
)填入 Slack 的 Request URL 中。
我这里用的是阿里云的windows镜像,所以直接通过命令行启动了服务,只是为了测试前后端是否正常通信
我们回到slack中,在菜单左侧可以看到我们的应用的名字
点击这个应用
如果看到这个提示,则说明你的应用还没有授权在这里使用。
我们只需要进入APP Home
页面,然后滑动到最下面
勾选checkbook。刷新一下slack页面,就可以看到消息输入框了。
我们随便输入些什么
可以看到机器人成功的回复了我们。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。