openid

订阅号服务开发-04主动消息推送

房东的猫 提交于 2021-01-25 07:27:17
@[toc] 客服消息接口 微信提供客服接口,用户给用户发送消息。在 wetchat.py 中封装成 WeChatMessage 。 注意:未认证的订阅号和公众号,是没有该接口权限的 发送文本消息 发送消息前,先获取粉丝的open_id,这里取巧,直接在公众号后台拿 wx.message.send_text(user_id="oiQF0tzMZ5Md5HaAlKvrZo9OIGBw",content="我不在我不在我不在.....") Out[25]: {'errcode': 0, 'errmsg': 'ok'} wx.message.send_text(user_id="oiQF0tzMZ5Md5HaAlKvrZo9OIGBw",content="我不在我不在我不在.....") Out[26]: {'errcode': 0, 'errmsg': 'ok'} 效果如下: [danger] 注意,会话需要由用户先发起,否则会出现45015:回复时间超过限制的错误。 发送图片消息 wx.message.send_image(user_id="oiQF0tzMZ5Md5HaAlKvrZo9OIGBw",media_id="BzzIfj9NcYYTuaPR_j133jbk4KxYuPvhoZx68usaDi0") Out[28]: {'errcode': 0, 'errmsg': 'ok

IdentityServer4(六)授权码流程原理之SPA

ε祈祈猫儿з 提交于 2021-01-23 11:34:58
在【One by One系列】IdentityServer4(四)授权码流程中提过一句: “ 为了安全,IdentityServer4是带有PKCE支持的授权码模式 ” 我们来回顾一下授权码流程 (A)用户访问客户端,后者将前者导向认证服务器。 (B)用户选择是否给予客户端授权。 (C)假设用户给予授权,认证服务器将用户导向客户端事先指定的"重定向URI"(redirection URI),同时附上一个授权码。 (D)客户端收到授权码,附上早先的"重定向URI",向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。 (E)认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)。 --摘自阮一峰老师-理解OAuth 2.0,自认为阮老师这块已经写比较清晰了,正所谓”眼前有景道不得,崔颢题诗在上头“。 1.什么是PKCE PKCE,全称Proof Key for Code Exchange,上篇讲到SPA,这是一种没有后端服务器的原生客户端,代码都在用户本地设备上运行,比如SPA在用户浏览器上运行,Win/Mac客户端,iOS/Android APP,如果让这些原生客户端安全地存放密钥(client secret)并不现实,且容易被破解。 Implicit Flow

IdentityServer4(六)授权码流程原理之SPA

杀马特。学长 韩版系。学妹 提交于 2021-01-23 10:52:57
在【One by One系列】IdentityServer4(四)授权码流程中提过一句: “ 为了安全,IdentityServer4是带有PKCE支持的授权码模式 ” 我们来回顾一下授权码流程 (A)用户访问客户端,后者将前者导向认证服务器。 (B)用户选择是否给予客户端授权。 (C)假设用户给予授权,认证服务器将用户导向客户端事先指定的"重定向URI"(redirection URI),同时附上一个授权码。 (D)客户端收到授权码,附上早先的"重定向URI",向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。 (E)认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)。 --摘自阮一峰老师-理解OAuth 2.0,自认为阮老师这块已经写比较清晰了,正所谓”眼前有景道不得,崔颢题诗在上头“。 1.什么是PKCE PKCE,全称Proof Key for Code Exchange,上篇讲到SPA,这是一种没有后端服务器的原生客户端,代码都在用户本地设备上运行,比如SPA在用户浏览器上运行,Win/Mac客户端,iOS/Android APP,如果让这些原生客户端安全地存放密钥(client secret)并不现实,且容易被破解。 Implicit Flow

几句简单的python代码完成周公解梦功能

ぃ、小莉子 提交于 2021-01-22 18:01:24
《周公解梦》是靠人的梦来卜吉凶的一本于民间流传的解梦书籍,共有七类梦境的解述。这是非常传统的中国文化体系的一部分,但是如何用代码来获取并搜索周公解梦的数据呢?一般情况下,要通过爬虫获取数据,然后再进行索引搜索,这个过程是十分复杂的,要熟练很多技术并且花不少时间开发,所以最好的方法还是直接调用接口完成,笔者以python为例,来实现这个功能: # -*- coding: utf-8 -*- # flake8: noqa __author__ = 'wukong' import urllib from urllib import urlencode #配置您申请的appKey和openId app_key="***" open_id="***" """ request_url 请求地址 params 请求参数 method 请求方法 """ def request_content(request_url,params,method): params = urlencode(params) if method and method.lower() =="get": f = urllib.urlopen("%s?%s" % (request_url, params)) else: f = urllib.urlopen(request_url, params) content = f

【One by One系列】IdentityServer4(二)使用Client Credentials保护API资源

混江龙づ霸主 提交于 2021-01-17 16:48:57
书接上回,我们将会正式开始介绍IdentityServer4。 IdentityServer4是实现了OAuth2.0+OpenId Connect两种协议的优秀第三方库,属于.net生态中的优秀成员。可以很容易集成至ASP.NET Core,颁发token。 使用 Id4 基本步骤如下: **1.**在 Startup.Configure 方法中调用 app.UseIdentityServer(); 添加中间件,把Id4添加至http请求处理管道,这使得Id4可以为OpenID Connect和OAuth2协议描述的端点(如 /connect/token )请求提供服务。 **2.**在 Startup.ConfigureServices 中注册IdentityServer4 services.AddIdentityServer(options=> { ... }); **3.**配置Identity Server Identity资源表示提供给客户端进行用户识别的信息(声明)。声明可能包括用户名称、电子邮件地址等。 API资源表示用户可通过访问令牌访问的受保护数据或功能。API 资源的一个示例是要求授权的 Web API(或 API集合)。 用于签名的凭据(credentials) 用户可能会请求访问的Identity资源和API资源 会请求获取token的客户端

C# 微信消息模板 发送

不想你离开。 提交于 2021-01-14 08:23:29
项目要用到微信提醒 ,加上调转到小程序页面,或者 指定url 用到 RestSharp、Senparc.Weixin 类库 一开始直接照着微信示例直接post进去 发现一直提示 47001 ,估计是我姿势水平不太够,还是用个类库操作吧 using RestSharp; using Senparc.Weixin.MP.AdvancedAPIs.TemplateMessage; using System; namespace TemplateApp1 { class Program { public static string OpenId = ""; public static string Template_id = ""; public static string AccessToken = GetACCESS_TOKEN(); static void Main(string[] args) { //网页跳转 SendTemplateMessageResult T = SendTemplateURL(AccessToken, OpenId, Template_id); //小程序跳转 SendTemplateMessageResult T1 = SendTemplatMiniProgram(AccessToken, OpenId, Template_id); Console

最近我学到的ABTest知识

北城余情 提交于 2021-01-14 08:01:10
前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star: https://github.com/ZhongFuCheng3y/3y 如果之前看过我文章的同学就知道我在工作中搞的是推送系统,之前写过一篇 带你了解什么是Push消息推送 ,里面也提到了我们或许可以做 ABTest ,最终提高推送消息的点击率。 那什么是ABTest呢?这篇文章带你们 入门 一下。 一、ABTest的介绍 比如我写了一篇关于ABTest的文章,我希望这篇文章的阅读量能上2500,但是我没想好标题叫什么比较合适。一条推文的标题非常能影响到阅读量,于是我想了几个的标题: 最近我学到的AbTest知识 AbTest入门 而我不知道哪个标题效果会更好一些,于是我做了这么一个尝试: 《最近我学到的AbTest知识》这个标题推送给10%的用户 《AbTest入门》这个标题推送给10%的用户 过一段时间后,我看一下效果,哪个标题的阅读量更高,我就将效果高的标题推送给剩余80%的用户 ABTest过程 要注意的是:在推送的文章的时候, 除了标题不同,其他因素都需要相同 (不能被别的因素给干扰),这样看数据的时候才有说服力。 1.1为什么要做ABTest? 做ABTest的原因其实很简单,我们在做业务的时候会有各种各样的想法,比如说: “我觉得在文案上加入emoji表情,这个推送的消息的点击率肯定高”

最近我学到的ABTest知识

倾然丶 夕夏残阳落幕 提交于 2021-01-14 07:43:33
前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star: https://github.com/ZhongFuCheng3y/3y 如果之前看过我文章的同学就知道我在工作中搞的是推送系统,之前写过一篇 带你了解什么是Push消息推送 ,里面也提到了我们或许可以做 ABTest ,最终提高推送消息的点击率。 那什么是ABTest呢?这篇文章带你们 入门 一下。 一、ABTest的介绍 比如我写了一篇关于ABTest的文章,我希望这篇文章的阅读量能上2500,但是我没想好标题叫什么比较合适。一条推文的标题非常能影响到阅读量,于是我想了几个的标题: 最近我学到的AbTest知识 AbTest入门 而我不知道哪个标题效果会更好一些,于是我做了这么一个尝试: 《最近我学到的AbTest知识》这个标题推送给10%的用户 《AbTest入门》这个标题推送给10%的用户 过一段时间后,我看一下效果,哪个标题的阅读量更高,我就将效果高的标题推送给剩余80%的用户 ABTest过程 要注意的是:在推送的文章的时候, 除了标题不同,其他因素都需要相同 (不能被别的因素给干扰),这样看数据的时候才有说服力。 1.1为什么要做ABTest? 做ABTest的原因其实很简单,我们在做业务的时候会有各种各样的想法,比如说: “我觉得在文案上加入emoji表情,这个推送的消息的点击率肯定高”

wx.getUserInfo不支持的解决方案

允我心安 提交于 2021-01-14 00:33:18
之前wx.getUserInfo写在app.js中,为了尽量减少影响,加了一个登录授权页面tologin wx.login({ success: function (r) { var code = r.code; // 登录凭证 if (code) { // 2、调用获取用户信息接口 wx.getUserInfo({ success: function (res) { // console.log("小程序res") // console.log(res) var userInfo = res.userInfo; // console.log("用户信息") // console.log(userInfo) var timeStamp = Date.parse( new Date()) / 1000 ; var nickName = userInfo.nickName; var gender = userInfo.gender; var avatarUrl = userInfo.avatarUrl; var country = userInfo.country; var province = userInfo.province; var city = userInfo.city; var param = { code: code, nickname: nickName, logo:

【weixi】微信支付---微信公众号JSAPI支付

倖福魔咒の 提交于 2021-01-13 19:56:25
一、JSAPI支付 JSAPI支付是用户在 微信中 打开商户的H5页面,商户在H5页面通过调用微信支付提供的JSAPI接口调起微信支付模块完成支付。应用场景有: ◆ 用户在 微信公众账号内 进入商家公众号,打开某个主页面,完成支付 ◆ 用户的好友在朋友圈、聊天窗口等分享商家页面连接,用户点击链接打开商家页面,完成支付 ◆ 将商户页面转换成二维码,用户扫描二维码后在 微信浏览器中 打开页面后完成支付 二、场景介绍 商户已有H5商城网站,用户通过消息或扫描二维码在 微信内打开网页 时,可以 调用微信支付 完成下单购买的流程。 步骤(1):如图1,商户下发图文消息或者通过自定义菜单吸引用户点击进入商户网页。 步骤(2):如图2,进入商户网页,用户选择购买,完成选购流程。 图1 商户网页下单 图2 请求微信支付 步骤(3):如图3,调起微信支付控件,用户开始输入支付密码。 步骤(4):如图4,密码验证通过,支付成功。商户后台得到支付成功的通知。 图3 用户确认支付,输入密码 图4 用户支付成功提示 步骤(5):如图5, 返回商户页面,显示购买成功。该页面由商户自定义 。 步骤(6):如图6,微信支付公众号下发支付凭证。 步骤(7):商户公众号下发消息,提示发货成功。该步骤可选。 图5 返回商户页面 图6 用户收到微信通知 注意:商户也可以把商品网页的链接生成二维码