开发者社区 问答 正文

有钉钉机器人实例代码吗?

有钉钉机器人实例代码吗?

展开
收起
真的很搞笑 2024-04-24 12:21:48 69 分享 版权
阿里云 AI 助理回答

是的,钉钉机器人实例代码可以通过阿里云提供的示例工程获取。以下是详细的说明和操作步骤:

示例工程代码

您可以下载并使用阿里云提供的Java示例工程代码来快速集成钉钉机器人。

源代码下载

  • 下载地址dingtalk-example.zip

示例运行配置

  1. 运行环境要求

    • 确保您的开发环境已安装JDK 8。
  2. 获取示例参数: 根据准备工作部分,您需要获取以下参数:

    • ALIYUN_ACCESS_KEY:阿里云账号的AccessKey ID。
    • ALIYUN_SECRET_KEY:阿里云账号的SecretKey。
    • CHATBOT_INSTANCE_ID:智能对话机器人的实例ID。
    • CHATBOT_AGENT_KEY:业务空间的AgentKey,可在[业务空间管理]页面获取。
    • DINGTALK_CLIENT_ID:钉钉企业内部应用的Client ID。
    • DINGTALK_CLIENT_SECRET:钉钉企业内部应用的Client Secret。
    • DINGTALK_CARD_TEMP_ID:AI卡片模板ID。
  3. 修改启动类参数

    • 打开示例工程中的启动类DingtalkRobotChatApp
    • 根据上述获取的参数,调整相关配置。
  4. 运行主方法

    • 运行com.aliyun.chatbot.channel.DingtalkRobotChatApp类的主方法。
  5. 测试机器人

    • 打开钉钉客户端,通过机器人名称搜索并打开对应的机器人进行问答。
    • 或者将机器人添加到企业内部群中,通过@机器人的方式进行提问。

示例代码片段

以下是一些关键代码片段供参考:

1. 创建客户端以调用云小蜜Chat API

public static Client createClient() throws Exception {
    Config config = new Config()
        // 必填,您的 AccessKey ID
        .setAccessKeyId(ALIYUN_ACCESS_KEY_ID)
        // 必填,您的 AccessKey Secret
        .setAccessKeySecret(ALIYUN_ACCESS_KEY_SECRET);
    // Endpoint 请参考官方文档
    config.endpoint = "chatbot.cn-shanghai.aliyuncs.com";
    return new Client(config);
}

2. 调用云小蜜Chat API

public ChatResponseBody doChat(String query, String sessionId) throws Exception {
    Client client = createClient();
    sessionId = sessionId.replace("+", StringUtils.EMPTY).replaceAll("==", StringUtils.EMPTY);
    ChatRequest chatRequest = new ChatRequest();
    chatRequest.setUtterance(query); // 用户输入的问题
    chatRequest.setInstanceId(CLOUD_BOT_INSTANCE_ID); // 机器人实例ID
    chatRequest.setSessionId(sessionId); // 会话ID
    RuntimeOptions runtime = new RuntimeOptions();
    ChatResponse chatResponse = client.chatWithOptions(chatRequest, runtime);
    ChatResponseBody body = chatResponse.getBody();
    log.info("doChat response:{}", JSON.toJSONString(body));
    return body;
}

3. 调用云小蜜点赞点踩API

@Data
@Accessors(chain = true)
public static class FeedbackContext {
    private String messageId; // 消息ID
    private String feedback; // 反馈内容(如"like"或"dislike")
}

public void doFeedback(FeedbackContext feedbackContext) throws Exception {
    Client client = createClient();
    FeedbackRequest feedbackRequest = new FeedbackRequest();
    feedbackRequest.setMessageId(feedbackContext.messageId);
    feedbackRequest.setFeedback(feedbackContext.feedback);
    FeedbackResponse response = client.feedback(feedbackRequest);
    log.info("doFeedback response:{}", JSON.toJSONString(response.getBody()));
}

注意事项

  • 权限配置:确保在钉钉开放平台中为应用申请了以下权限:
    • 企业内机器人发送消息权限。
    • 互动卡片实例写权限。
    • AI卡片流式更新权限。
  • 频率限制:每个机器人每分钟最多发送20条消息,超过后会被限流10分钟。
  • 安全设置:推荐配置自定义关键词,确保消息发送的安全性。

如果您需要进一步的帮助,请参考相关文档或联系技术支持团队。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答