云溪的 blog
  • Archive
  • Media
  • Search
  • Tags
  • About
Home

Posts

公众号通过api发送小程序消息

接口调用请求说明 http请求方式: POST https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN 发送普通消息的小程序链接 { "touser":"OPENID", "msgtype":"text", "text": { "content":"文本内容<a href="http://www.qq.com" data-miniprogram-appid="appId" data-miniprogram-path="pages/index/index">点击跳小程序</a" } } 说明: data-miniprogram-appid 项,填写小程序appid,则表示该链接跳小程序; data-miniprogram-path项,填写小程序路径,路径与app.json中保持一致,可带参数; 对于不支持data-miniprogram-appid 项的客户端版本,如果有herf项,则仍然保持跳href中的网页链接; data-miniprogram-appid对应的小程序必须与公众号有绑定关系 返回结果 {"errcode":0,"errmsg":"ok"} 发送效果 公众号推送小程序卡片 { "touser":"OPENID", "msgtype":"miniprogrampage", "miniprogrampage": { "title":"title", "appid":"appid", "pagepath":"pagepath", "thumb_media_id":"thumb_media_id" } } 返回结果 {"errcode":0,"errmsg":"ok"} 发送效果 参考链接 公众号文档

December 17, 2018 · 1 min · 云溪

redis实现分布式锁

起因 消息队列处理任务中,由于消息队列中有相同的处理请求并且消费端存在多个,因此出现了并发消费的问题,于是产生了利用分布式锁来锁定消费,保证同一时间只有一个请求在处理,找了一下分布式锁的实现方式常见的有: 基于数据库 基于Zookeeper 基于redis 选型 基于数据库相对来说,更直观,实现起来也比较简单,至于要设置一个唯一索引,在插入时判断是否正常插入,不能插入则说明获取锁失败,缺点是会增加数据库开销,增加数据库压力,所以此方案PASS。基于Zookeeper实现分布式锁,会引新的软件,将会增加原有系统的复杂度,因而此方案也PASS。基于 redis 本身是对内存的操作,相对来说效率会非常高,并且原有系统也已经存在了 redis ,因而也不会增加原系统的复杂度,所以选择了 redis 来实现分布式锁。 背景介绍 SETNX key value 将 key 的值设为 value ,当且仅当 key 不存在。若给的 key 已经存在,则 SETNX 不做任何动作。SETNX 是『SET if Not eXists』(如果不存在,则 SET)的简写。 redis> EXISTS job # job 不存在 (integer) 0 redis> SETNX job "programmer" # job 设置成功 (integer) 1 redis> SETNX job "code-farmer" # 尝试覆盖 job ,失败 (integer) 0 redis> GET job # 没有被覆盖 "programmer" 当 key 不存在时,返回 1, 如果设置的 key 存在时则返回 0 ,该操作本身具有原子性,因此可以利用 redis 此特性进行分布式锁实现的基础。 ...

December 14, 2018 · 1 min · 云溪

gitalk评论插件自动初始化

这只是个预告,耐心等待把。😀

November 29, 2018 · 1 min · 云溪

hugo集成girment插件

起因 使 hugo 搭建博客已经有半年了,一直觉得用 markdown 才写博客才程序员应该有的范,所以看到 hugo 就觉得自己应该有一个这样的博客,后面就自己搭建起来。最近,写博客的频率越来越高,也越来越觉得交互对一个博客的重要性,于是集成评论系统的优先级变得越来越高。 最开始也想着直接集成现有的国内评论插件,后台喜欢的评论插件死的死,不死的也半死,于是把目光放在了 gitment 上,对于 gitment 的集成相对简单,其中也有一些小坑,于是便有了这篇文章,希望能够帮到有同样想法的小伙伴。 1. 简介 Gitment 是一款基于 GitHub Issues 的评论系统,支持在前端直接引入,不需要任何后端代码。可以在页面进行登录、查看、评论、点赞等操作,同时有完整的 Markdown / GFM 和代码高亮支持。尤为适合各种基于 GitHub Pages 的静态博客或项目页面Gitment是一款基于 GitHub Issues 的评论系统,支持在前端直接引入,不需要任何后端代码。可以在页面进行登录、查看、评论、点赞等操作,同时有完整的 Markdown / GFM 和代码高亮支持。尤为适合各种基于 GitHub Pages 的静态博客或项目页面。 2. 注册 到https://github.com/settings/applications/new ,中注册一个新的OAuth Application 其中 Authorization callback URL 写你的网站域名就可以了,例如我这里填写的是:http://www.artacode.com/ 注册完成后会得到 Client ID 和 Client Secret 两个值用于为们后面引入 gitment 3. 引入 增加评论开关: sudo vim $HUGO_PATH/config.toml ... [params] enableGitment = true ... //保存退出 在 themes/beautifulhugo/layouts/_default/single.html 文件中,合适的位置增加如下代码 ...

November 27, 2018 · 1 min · 云溪

etcd入门系列四:开启客户端证书访问

etcd入门系列 一. etcd在docker中的安装与使用 二. etcd 开启 https 三. 身份验证访问控制 四. 开启客户端证书访问 1. 生成客户端证书 生成client.json: $ cfssl print-defaults csr > client.json 编辑 client.json 的修改 CN 值为 cliet ... "CN": "client", "hosts": [""], ... 生成客户端证书 cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=client client.json | cfssljson -bare client 将会得到如下文件 client-key.pem client.csr client.pem 2. 开启客户端证书检测 docker run -v /root/cfssl:/root/cfssl -p 2379:2379 --name etcd-net etcd /usr/local/bin/etcd -name etcd-net --client-cert-auth --trusted-ca-file=/root/cfssl/ca.pem --cert-file=/root/cfssl/server.pem --key-file=/root/cfssl/server-key.pem -advertise-client-urls https://0.0.0.0:2379 -listen-client-urls https://0.0.0.0:2379 --client-cert-auth:当这个选项被设置时,etcd 将为受信任CA签名的客户端证书检查所有的传入的 HTTPS 请求,不能提供有效客户端证书的请求将会失败。 --trusted-ca-file=<path>: 受信任的认证机构 ...

November 25, 2018 · 1 min · 云溪
« Prev  Next  »
© 2025 云溪的 blog