调用情迁机器人发送微信或者QQ消息等即时通讯消息

安装环境

电脑,安卓 都行。

作用

写任何定制插件都可以实现发送qq消息和微信消息通知。

代码

常量信息

public interface MsgTypeConstant {


    String nickname = "nickname";
    String extstr="extstr";

    public final static String ACTION_MSG = "insert/msg";//表示这目录下面所有
    String AUTHORITY = "cn.qssq666.robot";
    String AUTHORITY_CONTENT = "content://" + AUTHORITY;
    public final static String ACTION_GAD = "insert/gad";//表示这目录下面所有
    public final static String ACTION_KICK = "insert/kick";
    public final static String ERROR_JSON = "{'msg':'error',code:-1}";
    String istroop = "istroop";
    String version = "version";
    String time = "time";
    String senderuin = "senderuin";
    String frienduin = "frienduin";
    String selfuin = "selfuin";
    String type = "type";
    String code = "code";
    String apptype="apptype";
    String extrajson="extrajson";
    String msg = "msg";
    int MSG_TYPE_TEXT = -1000;
    int MSG_TYPE_SHUOSHUO = -2015;
    int MSG_TYPE_PIC = -2000;
    int MSG_TYPE_PIC_WITH_TEXT = -1035;
    int MSG_TYPE_REDPACKET = -2025;
    int MSG_TYPE_REDPACKET_1 = -2500;

代码

Uri uri = Uri.withAppendedPath(Uri.parse(MsgTypeConstant.AUTHORITY_CONTENT), “insert/msg”);
        Log.w(TAG, "sendMsg:" + uri.toString());
        ContentValues values = new ContentValues();
        values.put(MsgTypeConstant.msg, message);//消息内容
        values.put(MsgTypeConstant.nickname, nickname);//昵称
        values.put(MsgTypeConstant.time, new Date().getTime() / 1000);
        values.put(MsgTypeConstant.senderuin, senderuin);//qq号码或者微信号码
        values.put(MsgTypeConstant.selfuin, selfuin);//机器人自身的QQ号码,微信可以不填写
        values.put(MsgTypeConstant.frienduin, frienduin);//如果是群聊则是群号,否则填写QQ号码
        int MSG_TYPE_TEXT = -99999;//文本消息
        int type=MSG_TYPE_TEXT ;
        values.put(MsgTypeConstant.type, type);
        values.put(MsgTypeConstant.apptype, "test");
        values.put(MsgTypeConstant.time, new Date().getTime());
        values.put(MsgTypeConstant.istroop, istroop);//istroop =1代表群消息,否则代表私聊消息
        Uri insert = resolver.insert(uri, values);// 确保机器人已打开,正常情况下,回双向守护不会轻易宕机

代码

package cn.qssq666.main;

import android.content.ContentResolver;
import android.content.ContentValues;
import android.net.Uri;

import java.util.Date;

public class MsgHelper {
    public static Uri sendQQMsg(ContentResolver contentResolver, String robotQQ, String qq, String message){
      return   sendMsg(contentResolver,"插件",robotQQ,robotQQ,qq,message,0);
    }

    /**
     * 
     * @param contentResolver
     * @param robotQQ
     * @param qqgroup
     * @param message
     * @return
     */
    public static Uri sendQQGroupMsg(ContentResolver contentResolver,String robotQQ,String qqgroup,String message){
        /**
         * 由于是机器人自己发送消息,所以senderuin 为 机器人自身。
         */
        return   sendMsg(contentResolver,"插件",robotQQ,robotQQ,qqgroup,message,1);
    }

    /**
     * 仿造用户收到了发消息,让机器人处理。
     * @param contentResolver
     * @param nickname
     * @param selfAccount
     * @param account
     * @param frienduin
     * @param message
     * @param istroop
     * @return
     */
    public static Uri sendMsg(ContentResolver contentResolver, String nickname, String selfAccount, String account, String frienduin, String message, int istroop){
        Uri uri = Uri.withAppendedPath(Uri.parse(MsgTypeConstant.AUTHORITY_CONTENT), "insert/msg");
        ContentValues values = new ContentValues();
        values.put(MsgTypeConstant.msg, message);//消息内容
        values.put(MsgTypeConstant.nickname, nickname);//昵称
        values.put(MsgTypeConstant.time, new Date().getTime() / 1000);
        values.put(MsgTypeConstant.senderuin, account);//qq号码或者微信号码
        values.put(MsgTypeConstant.selfuin, selfAccount);//机器人自身的QQ号码,微信可以不填写
        values.put(MsgTypeConstant.frienduin, frienduin);//如果是群聊则是群号,否则填写QQ号码
        int MSG_TYPE_TEXT = -1000;//文本消息
        int type=MSG_TYPE_TEXT ;
        values.put(MsgTypeConstant.type, type);
        values.put(MsgTypeConstant.apptype, "test");
//        values.put(MsgTypeConstant.apptype, "proxy_send_msg");//这导致机器人会发重复的话。这是控制机器人发话的,因此不能用这个,
        values.put(MsgTypeConstant.time, new Date().getTime());
        values.put(MsgTypeConstant.istroop, istroop);//istroop =1代表群消息,否则代表私聊消息
        Uri insert = contentResolver.insert(uri, values);// 确保机器人已打开,正常情况下,回双向守护不会轻易宕机
        return insert;
    }

    /**
     * 让机器人发消息。
     * @param contentResolver
     * @param nickname
     * @param selfAccount
     * @param account
     * @param frienduin
     * @param message
     * @param istroop
     * @return
     */
    public static Uri robotSendMsg(ContentResolver contentResolver, String nickname, String selfAccount, String account, String frienduin, String message, int istroop){
        Uri uri = Uri.withAppendedPath(Uri.parse(MsgTypeConstant.AUTHORITY_CONTENT), "insert/msg");
        ContentValues values = new ContentValues();
        values.put(MsgTypeConstant.msg, message);//消息内容
        values.put(MsgTypeConstant.nickname, nickname);//昵称
        values.put(MsgTypeConstant.time, new Date().getTime() / 1000);
        values.put(MsgTypeConstant.senderuin, account);//qq号码或者微信号码
        values.put(MsgTypeConstant.selfuin, account);//让机器人自己发送消息,所以这里就是自己,全部填写自己
        values.put(MsgTypeConstant.frienduin, frienduin);//如果是群聊则是群号,否则填写QQ号码
        int MSG_TYPE_TEXT = -1000;//文本消息
        int type=MSG_TYPE_TEXT ;
        values.put(MsgTypeConstant.type, type);
        values.put(MsgTypeConstant.apptype, "proxy_send_msg");//这是控制机器人发话的,
        values.put(MsgTypeConstant.time, new Date().getTime());
        values.put(MsgTypeConstant.istroop, istroop);//istroop =1代表群消息,否则代表私聊消息
        Uri insert = contentResolver.insert(uri, values);// 确保机器人已打开,正常情况下,回双向守护不会轻易宕机
        return insert;
    }
}

,2.0.5理论上可以省略使用空字符串代替,而且必须使用此版本以及以上才支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值