以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]如何从中控服务获取access_token (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=132343) |
-- 作者:智友软件工作室 -- 发布时间:2019/3/20 11:18:00 -- [求助]如何从中控服务获取access_token Dim ac As WeChat.AccessToken = WeChat.WeChatAccessTokenController.GetNewAccessToken(1,_appid,_AppSecret) If ac.Success Then Output.Show(ac.access_token) End If 用这样的方式获取的access_token每次都是刷新一个新的 请问可以用什么办法获取未过期的access_token 我是用“使用UDP服务端做中控服务”方法做的中控服务
|
-- 作者:有点甜 -- 发布时间:2019/3/20 11:22:00 -- 参考
http://wechat.foxtable.com:9009/WebHelp/scr/we0013.htm
http://wechat.foxtable.com:9009/WebHelp/scr/we0011.htm
|
-- 作者:智友软件工作室 -- 发布时间:2019/3/20 12:33:00 -- 没看懂,现在就想获取一个不过去的凭证,不想每次都刷新,您能给写一下吗? |
-- 作者:智友软件工作室 -- 发布时间:2019/3/20 12:34:00 -- 没看懂,现在就想获取一个不过去的凭证,不想每次都刷新,您能给写一下吗? |
-- 作者:有点甜 -- 发布时间:2019/3/20 12:45:00 -- 认认真真看啊
http://wechat.foxtable.com:9009/WebHelp/scr/we0012.htm
不会做就用原始的
http://www.foxtable.com/mobilehelp/scr/0233.htm
|
-- 作者:智友软件工作室 -- 发布时间:2019/3/20 15:44:00 -- 哥哥,叫您一声亲哥,从昨晚到现在都没折腾明白,你就直接指点一下吧。 \'给用户推送信息 Dim id As String = Tables("微信工单").Current("openid") Dim txt As String txt = txt & Tables("微信工单").Current("nickname") & "你好:" & vbcrlf txt = txt & "您的工单状态已变更为等待调度,正在给您分配工程师" & vbcrlf txt = txt & "敬请关注" & vbcrlf Dim text As String = "{""touser"":""" & id & """,""msgtype"":""text"",""text"":{""content"":""" & txt & """}}" Dim wechatServ As WeChat.WeChatPublicNo = WeChat.WeChatServer.Server(_AppId) Dim weRet = wechatServ.SendMsgController.SendMessage(text) If weRet.Success Then MessageBox.Show("已给用户发送状态变更消息!") Else MessageBox.Show("给用户发送的状态变更消息失败!" & weRet.ErrorMessage) End If 用上面的方法客户端是可以成功给指定openid发送消息的,就说明这个过程调取的access_token是成功的,我现在想要单独获取到这个access_token Dim
url As
String = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}" Dim hc As New HttpClient(CExp(url, Functions.Execute("GetAccessToken"))) Dim jo As New JObject Dim ja As New JArray jo("touser") = "ofjtFwBSZ5cNqTKLSKx2TNEAxfBI" jo("template_id") = "WPpt3ki1Haq-ERpQvWXAgT7IZbfO07mbKtjnRt1Kiek" \'模板ID jo("url") = "http://www.foxtable.com" jo("data") = New JObject() jo("data")("name") = New JObject() jo("data")("name")("value") = "Foxtable" jo("data")("name")("color") = "#173177" jo("data")("number") = New JObject() jo("data")("number")("value") = "2" jo("data")("number")("color") = "#173177" jo("data")("expDate") = New JObject() jo("data")("expDate")("value") = "2019年12月27日" jo("data")("expDate")("color") = "#173177" jo("data")("expDate") = New JObject() jo("data")("expDate")("value") = "2019年12月27日" jo("data")("expDate")("color") = "#173177" jo("data")("remark") = New JObject() jo("data")("remark")("value") = "如有疑问,可联系客服QQ:800014337" jo("data")("remark")("color") = "#173177" hc.content = jo.Tostring() jo = JObject.Parse(hc.getdata) If jo("errcode") = "0" Then MessageBox.show("模版消息发送成功!") Else Messagebox.Show(jo.ToString) End If 我现在想用上面的办法发送模板消息,因为上面的方法看的明白(不会用WeChat.MPSendTemplate),这里面是通过自定义函数GetAccessToken用于获取access_token,我现在中控服务器是使用UDP服务端做中控服务,我想请教您在这种情况我我想得到access_token这个字符串该怎么弄。 帮助已经看了好多遍了,水平确实有限,脑子都浆糊了 [此贴子已经被作者于2019/3/20 15:45:15编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/3/20 15:48:00 -- 直接照抄啊
http://www.foxtable.com/mobilehelp/scr/0233.htm
|
-- 作者:智友软件工作室 -- 发布时间:2019/3/20 16:31:00 -- Dim hc As New HttpClient("http://" & _zhongkongip) hc. C & "测试" MessageBox.Show(hc.GetData) 是这样吗?显示空值
[此贴子已经被作者于2019/3/20 16:31:50编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/3/20 17:07:00 -- 方法一:做一个自己的函数,需要的时候调用
Static CreateTime As Date \'记录最近一次生成access_token的时间
方法二:
你可以用 Dim ac As WeChat.AccessToken = WeChat.WeChatAccessTokenController.GetNewAccessToken(1,_appid,_AppSecret)
简化你方法1的代码 |
-- 作者:智友软件工作室 -- 发布时间:2019/3/20 19:31:00 -- 你可以用 Dim ac As WeChat.AccessToken = WeChat.WeChatAccessTokenController.GetNewAccessToken(1,_appid,_AppSecret)
简化你方法1的代码 这种方法我一开始就知道了,测试是成功的,但是这种方法的缺陷就是每次都是生成一个新的,会耗用次数,现在想客户端如何从中控端获取 中控端是按照下面这样设置的 If e.Message.StartsWith("бTokenGetб") Then Dim msg As String = e.Message.Replace("бTokenGetб","") Dim atoken = WeChat.WeChatAccessTokenController.GetServiceAccessToken(msg) \'调用接口库获取最新access_toke If atoken.CheckError() Then Functions.Execute("LogText",atoken.ErrorMessage) Else e.ReturnValue = Functions.Execute("Msg_GetReturnValue",atoken.ToJson()) End If End If [此贴子已经被作者于2019/3/20 20:07:53编辑过]
|