|
楼主 |
发表于 2015-10-30 08:42:36
|
显示全部楼层
本帖最后由 tiger0425 于 2015-10-30 08:46 编辑
上面的解答并不能解决我的问题,我先把我的思路说一下,我是要做一个每天定时给微信企业号中的用户发送一条带连接的微信;定时调用是的论坛里的time那个服务 ,调用ACTION是正常的,我也分析了BEX5平台上的pushMessage.j 和WxHelper类的思路,我在time里仿着写了一个调用sendLinkMessage的action
public ActionResult sendReport() throws UnknownHostException, DocumentException{
// 登录
String bSessionID = login();
try {
Action action = new Action();
// 指定动作的process、activity和action,这里要注意登录的用户应该有执行这个功能中的这个动作的权限
//加入
// 设置动作参数
//action.setParameter("bookName", bookName);
//action.setParameter("startDate", new java.sql.Date(startDate.getTime()));
//action.setParameter("endDate", new java.sql.Date(endDate.getTime()));
//action.setParameter("borrower", borrower);
action.setProcess(X5Actions.WEIXINPROCESS);
action.setActivity(X5Actions.WEIXINACTIVITY);
action.setName("sendLinkMessage");
action.setParameter("msg", "销售报表");
action.setParameter("url", "http://www.111111.cc:8085/x5/UI2/XSBB/MobilBB/process/xsbh_sl/slxsbhActivity.w");
action.setParameter("userid", "5353");
action.setParameter("contextPath", "/x5");
action.addExecuteContextItem("configKey","wx12ad5c50697017d71");
// 调用动作
ActionResult actionResult = ActionEngine.invokeAction(action, ActionUtils.JSON_CONTENT_TYPE, bSessionID, null, null);
// 判断是否调用成功
if (actionResult.isSuccess()){
// 返回值
//throw new RuntimeException(actionResult.getMessage());
return actionResult;
}else{
throw new RuntimeException(actionResult.getMessage());
}
} finally {
// 要保证注销,否则会占用在线人数
ActionEngine.logout(bSessionID);
}
}
红字部分和WxHelper中的红字部分一样
public static ActionResult invokeAction(Action action,HttpServletRequest request) {
action.setProcess(WxHelper.WEIXINPROCESS);
action.setActivity(WxHelper.WEIXINACTIVITY);
String configKey = request.getParameter("configKey");
logger.info("configKey: " + configKey);
action.addExecuteContextItem("configKey", configKey);
logger.info(action);
return ActionEngine.invokeAction(action,ActionUtils.JSON_CONTENT_TYPE,WxHelper.getWeixinBSessionID(request),NetUtils.getLanguage(request),null);
}
但是我的在调用时"configKey“值并没有传过来是空的,
java.lang.RuntimeException: 请求参数configKey不存在,请检查url配置
at X5Actions.sendReport(X5Actions.java:56)
at DemoTask.doSomething(DemoTask.java:14)
at DemoTask.run(DemoTask.java:20)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
一直报这个错,百思不行其解,请问我的调用那里有问题?
我还做过一个测试,在
public static WxCpXmlOutMessage handleMessage(WxCpXmlMessage inMessage){
/*
* 示例代码 可以通过写这个action的listener来根据不同情况执行不同逻辑
* WxCpXmlOutTextMessage m = WxCpXmlOutMessage
.TEXT()
.content(inMessage.getContent())
.fromUser(inMessage.getToUserName())
.toUser(inMessage.getFromUserName())
.build();
return m;
*/
sendLinkMessage("销售报表","http://wwxxxxx.cc:8085/x5/UI2/XSBB/MobilBB/process/xsbh_sl/slxsbhActivity.w","5353|2268","/x5");
return null;
}
这里直接调用sendLinkMessage是可以向微信中发送消息的
|
|