http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 1689|回复: 1

[综合] Asp.net【企业微信开发】(八)获取用的AccessToken - get_suite_token

[复制链接]
发表于 2021-7-9 16:32:27 | 显示全部楼层 |阅读模式


在企业微信应用中,获取accesstoken中有好几个token, 本次我们主要说下获取用户的AccessToken的方法, 即 get_suite_token

具体实现方法如下:
[C#] 纯文本查看 复制代码
// 用suite_ticket 获取suite_access_token
                    var url = "https://qyapi.weixin.qq.com/cgi-bin/service/get_suite_token";
                    var body = "{\"suite_id\":\"" + WXConfig.SuiteID + "\",\"suite_secret\":\"" + WXConfig.Secret + "\",\"suite_ticket\":\"" + objcache.suite_ticket + "\"}";

                    //LogHelper.WriteLog(body);
                    var html = ShouQuan.InfoPost(url, body);

                    //LogHelper.WriteLog(html);
                    var info = JsonConvert.DeserializeObject<suite_access_token_info>(html);
                    if (!string.IsNullOrEmpty(info.suite_access_token))
                    {
                        // 存储suite_ticket
                        int result = cachebll.Update(DictBuilder.Assign("suite_access_token", info.suite_access_token).Assign("suite_access_token_update", DateTime.Now), $" suite_id='{WXConfig.SuiteID}'", null);
                        if (result > 0)
                        {
                            //LogHelper.WriteLog($"suite_access_token:{info.suite_access_token} 写入数据库成功");
                        }
                        else
                        {
                            //LogHelper.WriteLog($"suite_access_token:{info.suite_access_token} 写入数据库失败");
                        }
                        // 保存suite_access_token
                        return info.suite_access_token;
                    }


[C#] 纯文本查看 复制代码
/// <summary>
        /// post请求代码
        /// </summary>
        /// <param name="url"></param>
        /// <param name="body"></param>
        /// <returns></returns>
        public static string InfoPost(string url, string body)
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(url));
            request.Timeout = 30000;//30秒
            request.Method = "POST";
            byte[] payload = System.Text.Encoding.UTF8.GetBytes(body);
            Stream writer = request.GetRequestStream();
            writer.Write(payload, 0, payload.Length);
            writer.Close();
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8"));
            var result = reader.ReadToEnd();
            return result;
        }


从上栗中可以看到, 获取的suite_access_token是有时效性的, 我们可以存储到数据库中,在失效前再次获取即可, 避免请求频繁


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-5-3 11:59

© 2014-2021

快速回复 返回顶部 返回列表