Foxtable(狐表)用户栏目专家坐堂 → 获取Accesstoken函数修改


  共有2975人关注过本帖树形打印复制链接

主题:获取Accesstoken函数修改

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/27 23:14:00 [显示全部帖子]

CorpID和Secret 作为参数传入,改为使用字典存储AccessTocken
全局代码定义一个字典对象
public dict as new Dictionary(of String, object())

函数试试改为
Dim CorpID As String=  args(0) '企业号的CorpID
Dim Secret As String = args(1) '管理组的Secret
Dim CreateTime As Date = Date.Today.AddDays(-1)
If dict.ContainsKey(Secret)
    CreateTime = dict(Secret)(0)
End If
Dim tp As TimeSpan = Date.Now - CreateTime
If tp.TotalSeconds > 3600 Then
    Dim url As String = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}"
    Dim hc As New HttpClient(CExp(url, CorpID, Secret))
    Dim ret As String = hc.GetData()
    If ret = "" Then '如果失败,再尝试一次
        hc.GetData()
    End If
    CreateTime = Date.Now()
    Dim jo As JObject = JObject.Parse(ret)
    If jo("access_token") IsNot Nothing Then
        If dict.ContainsKey(CorpID)
            dict(Secret)(0) = CreateTime
            dict(Secret)(1) = jo("access_token")
        Else
            dict.Add(Secret,new object() {CreateTime ,jo("access_token")})
        End If
    Else
        MessageBox.show("获取access_token失败,原因:" & vbcrlf & jo.ToString)
    End If
End If

Return dict(Secret)(1)

调用

Dim access_token As String = Functions.Execute("GetAccessToken","ww7deed3af842576ed","sO7RjwoisX82kB_gcRY4isEU8ZC6sJVcGs6CDlz8Nkc")
Output.Show(access_token)

[此贴子已经被作者于2020/9/10 14:37:43编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/28 10:42:00 [显示全部帖子]

dict.Add(Secret,new object {CreateTime ,jo("access_token")})

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/28 14:25:00 [显示全部帖子]

图片点击可在新窗口打开查看dict.Add(Secret,new object() {CreateTime ,jo("access_token")})

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/28 21:47:00 [显示全部帖子]

AccessTocken = jo("access_token") 这句代码可以去掉,之前漏删除了

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/29 14:15:00 [显示全部帖子]

Dim access_token As String = Functions.Execute("GetAccessToken","wwa7fc2a99dcafb796","hynxRetmbqj38i4eL6Hx4mqo9DEdKNehieDhzzDdG88")
Dim ur As String = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={0}"
Dim hc As new HttpClient(Cexp(ur,access_token))

 回到顶部