技術(shù) 點(diǎn)
- 技術(shù)
- 點(diǎn)
- V幣
- 點(diǎn)
- 積分
- 13311
|
本帖最后由 fan0217 于 2016-12-28 23:21 編輯
解決前次發(fā)布的代碼,返回字符串編碼問題:
- '下列常量換成你自己的即可
- Public Const Corpid = "wxf4a9ef92f9f6cXXX" '企業(yè)Id,可從微信企業(yè)號(hào)后臺(tái)獲取
- Public Const Corpsecret = "FH6346paGvlTOkN5JeU96TltGNmwxcCYUYqvWRm3Q2JVEnVL3egfLYNBLkIf_Aoy" '管理組的憑證密鑰
- '獲取AccessToken,Https請(qǐng)求方式: GET
- Private Function GetTokenJson() As String
- Dim url As String
- Dim ret() As Byte
- Dim token As String
- url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" & Corpid & "&corpsecret=" & Corpsecret
- ret = HttpGet(url)
- token = ret
- GetTokenJson = token
- End Function
- '用了個(gè)較笨的方法,請(qǐng)自行找個(gè)解析JSON的方法替代
- Public Function GetToken() As String
- Dim tokenJson As String
- tokenJson = GetTokenJson
- Dim tmp As String
- tmp = Split(tokenJson, ",")(0)
- tmp = Split(tmp, ":")(1)
- tmp = Replace(tmp, """", "")
- GetToken = tmp
- End Function
- '獲取發(fā)送消息的Json數(shù)據(jù)
- Public Function GetSendTextJson(touser As String, agentid As Integer, content As String) As String
- Dim str As String
- str = str & "{"
- str = str & Replace("""touser"": ""#touser"",", "#touser", touser)
- str = str & """msgtype"": ""text"","
- str = str & Replace("""agentid"": #agentid,", "#agentid", agentid)
- str = str & """text"": {"
- str = str & Replace("""content"": ""#content""", "#content", content)
- str = str & "},"
- str = str & """safe"":0"
- str = str & "}"
- GetSendTextJson = str
- End Function
- '發(fā)送消息,,Https請(qǐng)求方式: POST
- '參數(shù) 必須 說明
- 'touser 否 成員ID列表(消息接收者,多個(gè)接收者用‘|’分隔,最多支持1000個(gè))。特殊情況:指定為@all,則向關(guān)注該企業(yè)應(yīng)用的全部成員發(fā)送
- 'toparty 否 部門ID列表,多個(gè)接收者用‘|’分隔,最多支持100個(gè)。當(dāng)touser為@all時(shí)忽略本參數(shù)
- 'totag 否 標(biāo)簽ID列表,多個(gè)接收者用‘|’分隔。當(dāng)touser為@all時(shí)忽略本參數(shù)
- 'msgtype 是 消息類型,此時(shí)固定為:text
- 'agentid 是 企業(yè)應(yīng)用的id,整型?稍趹(yīng)用的設(shè)置頁(yè)面查看
- 'content 是 消息內(nèi)容
- 'safe 否 表示是否是保密消息,0表示否,1表示是,默認(rèn)0
- Public Function SendText(token As String, touser As String, agentid As Integer, text As String) As String
- Dim url As String
- Dim jsonData As String
- Dim ret() As Byte
- url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" & token
- jsonData = GetSendTextJson(touser, agentid, text)
- Debug.Print jsonData
-
- ret = HttpPost(url, jsonData)
-
- SendText = ret
-
- End Function
- Function HttpGet(url As String) As String
- Dim xmlHttp As Object
- Set xmlHttp = CreateObject("Msxml2.XMLHTTP.3.0")
- If Not IsObject(xmlHttp) Then
- Set xmlHttp = CreateObject("Msxml2.XMLHTTP.3.0")
- If Not IsObject(xmlHttp) Then Exit Function
- End If
- xmlHttp.Open "GET", url, False
- xmlHttp.setRequestHeader "CONTENT-TYPE", "application/json;charset=UTF-8"
- xmlHttp.send
- Do While xmlHttp.ReadyState <> 4
- DoEvents
- Loop
-
- Dim ret As String
- ret = xmlHttp.responseText
- HttpGet = ret
- End Function
- Function HttpPost(url As String, postMsg As String) As String
- Dim xmlHttp As Object
- Set xmlHttp = CreateObject("Msxml2.XMLHTTP.3.0")
- If Not IsObject(xmlHttp) Then
- Set xmlHttp = CreateObject("Msxml2.XMLHTTP.3.0")
- If Not IsObject(xmlHttp) Then Exit Function
- End If
- xmlHttp.Open "POST", url, False
- xmlHttp.setRequestHeader "CONTENT-TYPE", "application/Json;charset=UTF-8"
- xmlHttp.send (postMsg)
- Do While xmlHttp.ReadyState <> 4
- DoEvents
- Loop
-
- Dim ret As String
- ret = xmlHttp.responseText
- HttpPost = ret
- End Function
復(fù)制代碼
參考文檔:http://qydev.weixin.qq.com/wiki/ ... 3%E8%AF%B4%E6%98%8E
- Sub Test()
- Dim token As String
- token = GetToken
- Debug.Print token
- End Sub
- Sub SendTest()
- Dim token As String
- token = GetToken
- Debug.Print SendText(token, "@all", 0, "你好!這是測(cè)試消息,收到請(qǐng)回復(fù)。--fans發(fā)送")
- End Sub
復(fù)制代碼
示例: |
本帖子中包含更多資源
您需要 登錄 才可以下載或查看,沒有帳號(hào)?注冊(cè)
x
|