开发者社区 问答 正文

link消息客户端没有接收不到消息

我通过发送企业会话消息(用户反馈式)向客户端发送消息,消息的构造如下: $mes = [
            "msgtype" => "link",
            "agentid" => AGENTID,
            "touser" => $touser,
            "code" => $code,
            "link" => array(
                "messageUrl" => "http://192.168.1.101:8080?appId=".$response["formId"],
                "title" => "应用测试",
                "text" => "应用测试"
            )
        ];

这是发送消息的方法: public static function sendByCode($accessToken, $opt)
    {
        $response = Http::post("/message/sendByCode",
            array("access_token" => $accessToken),json_encode($opt));
        return $response;
    }

这是客户端返回的json信息: {"invalidparty":"","messageId":"95866eac77d23060b925e0faac2096d8","errmsg":"ok","invaliduser":"","errcode":0}
现在的问题是我在企业会话的消息窗口中收不到消息,为什么呢?
我把消息类型改为text就可以收到,求解答,十分感谢。




展开
收起
summac.c 2017-04-04 22:45:03 2382 分享
分享
版权
举报
阿里云 AI 助理回答

根据您提供的信息,您在尝试通过企业会话发送消息时遇到了问题:当消息类型设置为“link”时,客户端无法接收到消息,但将消息类型改为"text"后则能正常接收。结合您的代码片段和返回的JSON信息,这里有几个可能的原因及建议:

  1. 消息格式验证:首先,请确保您的“link”类型消息结构符合企业微信接口的要求。您的消息构造中直接使用了"msgtype" => "link",需要确认是否完全遵循了官方文档中关于“link”消息类型的定义,包括所有必填字段和格式要求。

  2. 网络与域名限制:消息中的messageUrl指向的是本地IP地址(http://192.168.1.101:8080),这在外部网络或企业微信服务器上是不可访问的。请确保messageUrl是一个公网可访问的URL,且不在企业微信的黑名单中。企业微信对链接消息的URL有严格的访问性和安全要求。

  3. 错误码与日志分析:虽然您提供的客户端返回信息显示errcode为0,表示请求成功,但实际接收问题可能并不直接体现在这个响应中。建议检查服务端日志,看是否有更详细的错误信息输出,或者尝试调用API的错误码查询功能来获取可能的错误详情。

  4. 权限与配置问题:确认应用的agentid具有向指定用户发送消息的权限,并且用户的接收设置没有屏蔽此类消息。有时,即使消息发送出去,也可能因为用户或部门设置被系统过滤掉。

  5. API版本与兼容性:虽然您未提及,但确保使用的API版本是最新的,并且与企业微信后台设置相匹配。旧版本的API或不兼容的设置可能导致某些功能失效。

综上所述,主要排查方向应集中在消息格式的正确性、URL的可达性以及权限配置上。如果以上均无误,建议直接咨询企业微信的官方技术支持,提供详细的请求参数和返回结果以便获得更专业的帮助。

参考资料: - 企业微信官方文档关于消息发送的部分(假设存在,具体链接未给出)

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

你好,我是AI助理

可以解答问题、推荐解决方案等