以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]企业微信消息回调  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=130507)

--  作者:shissx
--  发布时间:2019/1/23 21:26:00
--  [求助]企业微信消息回调
企业微信信息回调应用API的URL设置,必须用备案过的域名么,不能用阿里云的固定IP么?
照着帮助用IP设置,总是设置失败,帮助还是企业号的,有些不太一样。
也听说用固定IP做回调URL只能发文字,不能发图片和位置,可是文字也暂时够用了。


--  作者:有点甜
--  发布时间:2019/1/23 22:02:00
--  

用ip也是可以的,回掉不应该出错。

 

一般测试的时候,不需要在阿里云那里测试,你可以在本机测试的。

 

http://www.sunnyos.com/article-show-67.html

 

https://www.ngrok.cc/


--  作者:shissx
--  发布时间:2019/1/24 15:12:00
--  
企业微信设置好了:可以给企业微信用户发消息,可以自动回复用户消息。
OpenQQ也设置好了:可以给foxtable用户发消息。
两个设置在一个服务端文件中,放在服务器上,SQL也放在服务器上。
看了帮助,转发消息是微信的,企业微信不会用,请问:
1.OpenQQ的消息,怎么转发给企业微信?
2.客户端触发条件后,怎么直接给企业微信用户发消息?
3.现在的理解,客户端是没有公网IP的,需要把数据传到SQL表中,然后再处理?

4.需要的效果是,客户端操作触发OpenQQ消息,服务端截取,筛选指定条件的消息通过Http回调,转发给企业微信用户。

[此贴子已经被作者于2019/1/24 15:23:55编辑过]

--  作者:有点蓝
--  发布时间:2019/1/24 16:13:00
--  
逻辑都一样的

openQQ客户端发消息给openQQ服务端,定义好消息的规则,比如发送:QQClient.Send("接收人的微信id|消息内容|发送人的openqq登录名")

openQQ服务端接收后把消息内容通过调用微信发送消息接口发送给接收人微信。

企业微信服务端接收到微信回复的消息后,把消息存入SQL表,openQQ客户端定时查询,或者openQQ服务端定时查询后发给openQQ客户端。

可以参考这里的实例:http://wechat.foxtable.com:9009/WebHelp/scr/we0163.htm,逻辑都是一样的,只是把公众号接口改为企业微信接口即可

--  作者:shissx
--  发布时间:2019/1/24 16:38:00
--  
1.客户端到微信
OpenQQ客户端→OpenQQ服务端→直接发送到微信
2.微信到客户端
微信用户发消息到微信应用→回调消息API保存消息至SQL消息表→OpenQQ定时检查SQL消息表→发现新消息转发给OpenQQ客户端用户

以上两种方法都需要OpenQQ服务器作中转,
区别是微信消息到OpenQQ客户端,必须先存储到SQL再调用发送。
但是如果客户端的消息只需要发送给微信,就不需要在SQL建立消息表,
是不是可以这么理解?

--  作者:有点蓝
--  发布时间:2019/1/24 16:44:00
--  
是的。不过建议可以双向的消息都保存到数据库,方便以后需要时查询。当然这些消息如果以后都没有什么用的,可以不用保存
--  作者:shissx
--  发布时间:2019/1/24 17:37:00
--  
1.企业微信回调正常,可以写入消息到SQL表。
2.增加微信好友
QQClient.AddWeChatUser("LiJianguo","李建国")
OpenQQ聊天窗口中可以发消息。


下面这个帮助看不懂,修改了也没起作用。

Foxtable服务端QQServer的WeChatMessageReceived事件,输入代码:

Dim userid = e.WeChatID

If e.ContentType = 0 Then \'本例子只处理文本消息

    Dim drUser As DataRow = DataTables("微信用户").Find(CExp("[_Identify]={0} ",userid))

    If drUser IsNot Nothing Then

        Dim text = WeChat.SendMessageHelper.GetSendMessage(WeChat.ApiType.MP, "text")

        text.touser = drUser("OpenID")

        text.AddContent(e.Content)

        Dim weRet = WeChat.WeChatServer.Server("wx506f113977c3a8a3").SendMsgController.SendMessage(text.ToJson(True)) \'发送消息到微信

        If not weRet.Success Then

            Functions.Execute("logText",weRet.ErrorMessage & "|" & text.ToJson(True))

        End If

       

    End If

End If



WeChatessageReceived
用途是
服务端收到客户端发给微信用户的信息后发。

现在OpenQQ收到了客户端发给“微信用户李建国”的消息
怎么转发给李建国?
核心代码像是下面这一句
WeChat.WeChatServer.Server("wx506f113977c3a8a3").SendMsgController.SendMessage(text.ToJson(True)) 
不会修改,需求是把用OpenQQ给指定的企业微信用户发消息。

--  作者:有点蓝
--  发布时间:2019/1/24 17:41:00
--  
不就是发送消息么?参考:http://www.foxtable.com/mobilehelp/scr/0166.htm
--  作者:shissx
--  发布时间:2019/1/24 18:05:00
--  
这个发消息只能在服务端发,可客户端触发的消息,只能用OpenQQ转发啊,想不明白怎么在客户端,直接发消息给企业微信。
--  作者:有点蓝
--  发布时间:2019/1/25 10:37:00
--  
客户端先发给openQQ服务端呀,和正常一样发消息即可,服务端WeChatMessageReceived就会接收到消息。

7楼的代码是服务端的代码好不。