钉钉只有openConversationId,如何发送钉钉卡片?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在钉钉中,如果只有 openConversationId
,您仍然可以通过调用钉钉的开放接口发送卡片消息。以下是详细的步骤和操作说明:
在发送卡片消息之前,需要确保以下条件已满足: - 您已经创建了钉钉应用,并获取了 Client ID
和 Client Secret
。 - 您已经在钉钉卡片平台创建了消息卡片模板,并获取了 模板ID
。 - 您的应用已经申请了发送卡片消息的相关权限(如 Card.Streaming.Write
和 Card.Instance.Write
)。
发送卡片消息需要使用钉钉的 API 接口,而调用接口的前提是获取有效的 Access Token
。以下是获取 Access Token
的步骤:
使用 Client ID
和 Client Secret
调用钉钉的 OAuth2 授权接口:
POST https://oapi.dingtalk.com/gettoken
请求参数: - appkey
: 您的 Client ID
- appsecret
: 您的 Client Secret
钉钉会返回一个 JSON 响应,其中包含 access_token
字段:
{
"errcode": 0,
"errmsg": "ok",
"access_token": "your_access_token"
}
保存 access_token
,后续调用接口时需要用到。
根据您的需求,构造符合钉钉规范的卡片消息内容。以下是一个示例卡片消息结构:
{
"msgtype": "action_card",
"action_card": {
"title": "卡片标题",
"markdown": "这是卡片的正文内容。",
"single_title": "查看详情",
"single_url": "https://example.com"
}
}
您可以根据实际需求调整卡片的内容和样式,例如添加按钮、图片等。
通过钉钉的 openConversationId
发送卡片消息,可以调用以下接口:
POST https://oapi.dingtalk.com/message/send_to_conversation?access_token=your_access_token
请求参数: - access_token
: 上一步获取的 Access Token
- 请求体(JSON 格式):
{
"sender": "your_sender_id",
"cid": "openConversationId",
"msg": {
"msgtype": "action_card",
"action_card": {
"title": "卡片标题",
"markdown": "这是卡片的正文内容。",
"single_title": "查看详情",
"single_url": "https://example.com"
}
}
}
字段说明: - sender
: 发送者的用户 ID(通常是机器人或管理员的 ID)。 - cid
: 目标会话的 openConversationId
。 - msg
: 卡片消息的具体内容。
钉钉接口会返回一个 JSON 响应,表示消息发送的结果。例如:
{
"errcode": 0,
"errmsg": "ok",
"request_id": "request_id_123456"
}
errcode
为 0
,表示消息发送成功。errcode
不为 0
,请根据 errmsg
提示排查问题。Card.Streaming.Write
和 Card.Instance.Write
权限,否则无法发送卡片消息。通过以上步骤,您可以利用 openConversationId
成功发送钉钉卡片消息。如果有进一步的问题,请随时咨询!