开发者社区> 问答> 正文

发送oa消息出错

你好。我这边调用服务端发送 oa消息。返回 40035 不合法的参数。我已经确认accessToken 和 agentId是对的。并且把 推送的oa消息的json 串 在钉钉 api调试工具页面调试过,是可以正常发送的,请帮忙指点下。这个问题出在哪里。希望尽快答复。感激不尽!

展开
收起
白昱 2016-01-12 09:47:50 6766 0
4 条回答
写回答
取消 提交回答
  • 应该是你发送的参数有错
    2018-03-09 14:08:59
    赞同 展开评论 打赏
  • Re发送oa消息出错
    你的access_token有没有过期,你是怎么获取的。
    2016-01-12 18:30:20
    赞同 展开评论 打赏
  • 回 1楼钉钉剑桥的帖子
      protected void sendOaMsg(String title, String massageText,
                                String accessToken, String toUsers, String toParties,
                                String agentId) {
         log.info(title);
         log.info(accessToken);
         log.info(massageText);
         log.info(toUsers);
         log.info(toParties);
         log.info(agentId);

         //发送微应用消息
         try {
           OAMessage oaMessage = new OAMessage();
           oaMessage.message_url = "http://www.zhidianbao.cn";
           //System.out.println("url:"+message_url + "&mid=" + scheduleid);
           OAMessage.Head head = new OAMessage.Head();
           head.bgcolor = "FFff4852";
           oaMessage.head = head;
           OAMessage.Body body = new OAMessage.Body();
           body.title = title;
           OAMessage.Body.Form form1 = new OAMessage.Body.Form();
           form1.key = "";
           form1.value = "";
           body.form = new ArrayList();
           body.form.add(form1);
           OAMessage.Body.Rich rich = new OAMessage.Body.Rich();
           rich.num = "";
           rich.unit = "";
           body.rich = rich;
           body.content = massageText;
           body.image = "";
           body.file_found = "";
           body.author = "";
           oaMessage.body = body;

           LightAppMessageDelivery lightAppMessageDelivery = new LightAppMessageDelivery(toUsers, toParties, agentId);
           lightAppMessageDelivery.withMessage(oaMessage);
           MessageHelper.send(accessToken, lightAppMessageDelivery);
           log.info("发送给:" + toUsers+" 消息:"+title);
         }
         catch (Exception ex) {
           log.error(ex.getMessage(), ex);
           return;
         }
         finally {
         }
      }

    sendOaMsg()是我的推送方法.




    {"agentid":"9634567","msgtype":"oa","oa":{"body":{"author":"","content":"您有1张报销单已经打款,请及时进行核对,谢谢","file_found":"","form":[{"key":"","value":""}],"image":"","rich":{"num":"","unit":""},"title":"打款通知"},"head":{"bgcolor":"FFff4852"},"message_url":"http://www.zhidianbao.cn"},"toparty":"","touser":"zxx"}


    这个是推送的参数。

    -------------------------

    Re发送oa消息出错
    request url=https://oapi.dingtalk.com/message/send?access_token=60a7858ce37037d1b77a3802d8faf670,return value=
    {"errcode":40035,"errmsg":"不合法的参数"}


    请求 地址 和返回的结果

    -------------------------

    回 4楼忠恕的帖子
    没有过期。我其他地方用access_toten都是正常的。

    -------------------------

    Re发送oa消息出错
    我在 钉钉服务端API调试工具  里调试也都是可以的

    -------------------------

    回 4楼忠恕的帖子
    这里具体是哪个参数不合法呢。现在不清楚问题在哪里

    -------------------------

    Re发送oa消息出错
    问题解决了。谢谢你的解答
    2016-01-12 18:17:36
    赞同 展开评论 打赏
  • Re发送oa消息出错
    参数编码正确么,看一下我们的Java Demo
    https://github.com/injekt/openapi-demo-java/blob/master/src/com/alibaba/dingtalk/openapi/demo/Demo.java
    2016-01-12 10:53:49
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载