钉钉只有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 成功发送钉钉卡片消息。如果有进一步的问题,请随时咨询!