企业微信聊天机器人demo

24 篇文章 0 订阅
import java.io.IOException;

import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import com.test.utils.LogUtil;

/**  
 * <p>Title:QyWxMsgUtil</p>  
 * <p>Description: 企业微信机器人工具类</p> 
 * 
 * @author admin
 * @date 2019年10月8日  
 */
public class QyWxMsgUtil {
    private static final LogUtil logger = LogUtil.getLogUtil(QyWxMsgUtil.class);
    
    public static void main(String[] args) {
        String webHookUrl="聊天机器人的地址";
        Integer titleLevel=0;
        String title="这是标题啊";
        String content="这是内容";
        sendQyWxTextMsg(webHookUrl, titleLevel, title, content);
    }

    
    /**  
     *
     * <p>Title: sendQyWxTextMsg</p>  
     *
     * <p>Description: 发送企业微信机器人文本内容</p>  
     *
     * @param webHookUrl
     * @param titleLevel 标题颜色:默认为green;1为yellow;2为red;
     * @param title
     * @param content
     * @return  
     *
     */
    public static boolean sendQyWxTextMsg(String webHookUrl,Integer titleLevel,String title,String content ){
        boolean result=false;
        String requestData = getRequestData(titleLevel, title, content);
        String resp = post(webHookUrl, requestData);
        logger.info("发送企业微信:返回结果:{0}", resp);
        if (resp!=null && resp.contains("ok")) {
            result=true;
        }
        return result;
        
    }

    /**  
     *
     * <p>Title: getRequestData</p>  
     *
     * <p>Description: 包装请求参数</p>  
     *
     * @param titleLevel
     * @param title
     * @param content
     * @return  
     *
     */
    public static String getRequestData(Integer titleLevel, String title, String content) {
        StringBuilder bd=new StringBuilder();
        String titleLevelStr="info";//green
        if (titleLevel!=null) {
            if (titleLevel==1) {
                titleLevelStr="comment";//yellow
            }else if (titleLevel==2) {
                titleLevelStr="warning";//red
            }
        }
        bd.append("{\r\n"); 
        bd.append("\"msgtype\": \"markdown\",\r\n"); 
        bd.append("\"markdown\": {\r\n");
        bd.append("\"content\": \"<font color='");
        bd.append(titleLevelStr);
        bd.append("'>");
        bd.append(title);
        bd.append("</font>\r\n"); 
        bd.append(content);
        bd.append("\"}\r\n");
        bd.append("}");
        return bd.toString();
    }
    
    /**  
     *
     * <p>Title: post</p>  
     *
     * <p>Description: 发送post请求</p>  
     *
     * @param url
     * @param content
     * @return  
     *
     */
    public static String post(String url, String content) {
        String str = null;
        CloseableHttpClient hc = HttpClients.createDefault();
        try{
            HttpPost req = new HttpPost(url);
            StringEntity entity = new StringEntity(content, "UTF-8");
            req.setEntity(entity);
            CloseableHttpResponse rep = hc.execute(req);
            try{
                str = EntityUtils.toString(rep.getEntity(), "UTF-8");
            }finally{
                rep.close();
            }
        }catch(Exception e){
            logger.error(e, "http post error : url={0},content={1}", url, content);
        }finally{
            try {
                hc.close();
            } catch (IOException e) {
                logger.error(e, "http client close error : url={0},content={1}", url, content);
            }
        }
        return str;
    }
}

 

环境要求 PHP >= 7.0 PHP fileinfo 拓展 储存文件需要用到 PHP gd 拓展 控制台显示二维码 PHP posix 拓展 控制台显示二维码(linux) PHP 系统命令 拓展 执行clear命令 PHP SimpleXML 拓展 解析XML 安装 请确保已经会使用composer! 运行微信账号的语言设置务必设置为简体中文!!否则可能出现未知的错误! 1、git git clone https://github.com/HanSon/vbot.git cd vbot composer install 2、composer composer require hanson/vbot 运行 正常运行 php example/index.php 带session运行 php example/index.php --session yoursession 关于session : 带session运行会自动寻找设定session指定的cookies,如不存在则新建一个文件夹位于 /tmp/session 中,当下次修改代码时再执行就会免扫码自动登录。 如果不设置,vbot会自动设置一个6位的字符的session值,下次登录也可以直接设定此值进行面扫码登录。 PS:运行后二维码将保存于设置的缓存目录,命名为qr.png,控制台也会显示二维码,扫描即可(linux用户请确保已经打开ANSI COLOR) 警告!执行前请先查看index.php的代码,注释掉你认为不需要的代码,避免对其他人好友造成困扰 请在terminal运行!请在terminal运行!请在terminal运行! 目录结构 vbot demo (vbot 当前在运行的代码,也欢迎大家提供自己的一些实战例子) example (较为初级的实例) src (源码) tmp (假设缓存目录设置在此) session hanson (设定值 php index.php --session hanson) 523eb1 (随机值) users 23534234345 (微信账号的UIN值) file (文件) gif (表情) jpg (图片) mp3 (语音) mp4 (视频) contact.json (联系人 debug模式下存在) group.json (群组 debug模式下存在) member.json (所有群的所有成员 debug模式下存在) official.json (公众号 debug模式下存在) special.json (特殊账号 debug模式下存在) message.json (消息) 体验 扫码后,验证输入“echo”即可自动加为好友并且拉入vbot群。 vbot并非24小时执行,有时会因为开发调试等原因暂停功能。如果碰巧遇到关闭情况,可加Q群 492548647 了解开放时间。执行后发送“拉我”即可自动邀请进群。
要在Django中创建一个企业微信聊天机器人,你可以使用企业微信提供的开发接口和Django的功能来实现。以下是一个简单的步骤: 1. 获取企业微信开发凭证:首先,你需要在企业微信开发者平台上注册一个账号,并创建一个企业应用。在创建应用时,你将获得一个CorpID(企业ID)和一个Secret(秘钥),它们将用于后续的认证和访问。 2. 配置企业微信回调URL:在企业微信开发者平台上,配置你的应用的回调URL。这个URL将用于接收企业微信发送的消息和事件。 3. 创建Django应用:使用Django的命令行工具创建一个新的Django应用。你可以运行`python manage.py startapp appname`来创建一个新的应用。"appname"是你给应用起的名称。 4. 编写机器人逻辑:在你创建的Django应用目录中,打开views.py文件,并编写处理企业微信消息和事件的逻辑。你可以使用企业微信提供的API来发送和接收消息,处理事件等。 5. 配置URL路由:打开项目目录下的urls.py文件,配置URL路由以将请求发送到你编写的机器人视图。你可以使用Django的URL路由机制来匹配URL和视图函数。 6. 配置企业微信回调URL验证:在你的Django应用中,编写一个视图函数来处理企业微信的URL验证请求。你需要将企业微信发送的验证参数进行处理,并返回相应的响应。 7. 运行开发服务器:保存你的代码并在命令行中运行`python manage.py runserver`来启动Django的开发服务器。确保你的应用和URL配置正确无误。 8. 部署应用程序:当你测试完成后,你可以将你的Django应用程序部署到生产环境中,以便可以在企业微信中使用你的聊天机器人。 请注意,以上步骤只是一个简单的示例,实际上还有很多其他的细节和功能可以涉及。你需要参考企业微信开发文档和Django文档来了解更多详细信息,并根据你的具体需求进行定制和扩展。希望这对你有所帮助!如果你还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值