微信公众号开发过程及对微信公众号内容的认识

我想得到一个公众号

注册登录

注册地址

注册后还要实名认证,注册认证过程会让你选择订阅号还是服务号,如果是个人当然是订阅号。企业肯定是服务号。
登录是要绑定微信号,再用微信号扫一扫才能进入期盼已久的公众平台

有已经有了一个公众号,怎么用

进入公众平台,就可以在公众平台里编辑,你想怎么玩就怎么玩,反正玩不坏,多试试又无妨。

我想说的是开发模式,上面说的是编辑模式

开发模式下的玩法

想进入开发模式必须在公众平台管理的配置选项开启服务器配置,

有哪些配置呢
  1. URL(服务器地址)
    请求后台的验证接口地址
  2. Token(令牌)
    这个自己任意填
  3. EncodingAESKey(消息加解密密钥)
    点击后面的随机生成
  4. 消息加解密方式
    开发时选择明文

我想开发怎么办

开发工具

官方工具入口地址

这里有各种开放者需要的工具或文档入口

开发者文档

文档地址
在这里你可看到开发者的规范,借口权限一览表(订阅号,和服务号的认证前与认证后开通的权限功能。及认证后哪里权限是需要申请的。),各接口的使用。

怎么搭建后台服务和入门

  • 后台服务使用nodejs搭建,demo下载地址。node 运行index文件,再做个公网映射(外网能访问你本地运行的服务,有工具可以使用的)。
  • 接入指南

    管理平台修改服务配置,上面说了
    微信会向我的后台服务发一个get请求,这个请求有四个参数:

    1. signature:用于校验的签名串,我后台生成的签名串跟这个进行‘===’判断
    2. timestamp:我后台生成签名串会用到的时间戳
    3. nonce:我后台生成签名串会用到的随机数
    4. echostr
  • 我后台生成签名串的过程:

    1. 将token、timestamp、nonce三个参数进行字典序排序
    2. 将三个参数字符串拼接成一个字符串进行sha1加密
  • js代码示例

    // 获取校验参数
    this.signature = req.query.signature,
    this.timestamp = req.query.timestamp,
    this.nonce = req.query.nonce,
    this.echostr = req.query.echostr;

    // 按照字典排序
    var array = [this.token, this.timestamp, this.nonce];
    array.sort();

    // 连接
    var str = sha1(array.join(""));

    // 对比签名
    if(str == this.signature) {
        return true;
    } else {
        return false;
    }

我想使用微信提供的接口

我看了看,有些接口的使用要先有个access_token

获取access_token


access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

  1. 获取方法
    是get请求的方式获得
    请求地址及参数:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
    只需要替换掉APPID和APPSECRET,值是从公众平台里得到的

我的公众号很多权限没有怎么办

微信提供了测试公众号

测试号申请地址
需要用绑定的微信扫一扫

测试的只是检验数据交互的正确性,不能反映在展示上。

我要做哪些开发

消息管理

微信客户端发送消息过来了,我服务后台接收后要给出反映。
客户端发过来的可以是文本消息,图片消息,语音消息,视频消息,小视频消息,位置消息,链接消息
客户端还可以发事件过来,关注/取消关注、扫二维码、上报地理位置、自定义菜单事件、点击菜单拉取消息的事件推送、点击菜单跳转链接时的事件推送。
后台给客户端发送消息:
1 回复文本消息
2 回复图片消息
3 回复语音消息
4 回复视频消息
5 回复音乐消息
6 回复图文消息
还可以群发之类的

素材管理

对素材的增删查。添加,删除,查询

用户管理

  1. 标签管理
    创建标签(最多可以创建100个标签。)
    获取公众号已创建的标签
    编辑标签
    删除标签
    获取标签下粉丝列表
    标签功能目前支持公众号为用户打上最多三个标签。
    批量为用户打标签
    批量为用户取消标签
    获取用户身上的标签列表

  2. 设置用户备注名
    开发者可以通过该接口对指定用户设置备注名,该接口暂时开放给微信认证的服务号。 接口调用请求说明

  3. 获取用户基本信息
{
   "subscribe": 1, 
   "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", 
   "nickname": "Band", 
   "sex": 1, 
   "language": "zh_CN", 
   "city": "广州", 
   "province": "广东", 
   "country": "中国", 
   "headimgurl":  "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4
eMsv84eavHiaiceqxibJxCfHe/0",
  "subscribe_time": 1382694957,
  "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
  "remark": "",
  "groupid": 0,
  "tagid_list":[128,2]
}
  1. 获取用户列表

  2. 获取用户地理位置

  3. 黑名单管理
    1. 获取公众号的黑名单列表
    2. 拉黑用户
    3. 取消拉黑用户

账号管理

  1. 生成带参数的二维码

    1. 创建二维码ticket
    2. 临时二维码请求说明
    3. 永久二维码请求说明
    4. 通过ticket换取二维码
  2. 长链接转短链接接口

    主要使用场景: 开发者用于生成二维码的原链接(商品、支付二维码等)太长导致扫码速度和成功率下降,将原长链接通过此接口转成短链接再生成二维码将大大提升扫码速度和成功率。

  3. 微信认证事件推送
    为了帮助公众号开发者获取公众号的认证状态,也为了第三方平台开发者获知旗下公众号的认证状态,微信公众平台提供了公众号认证过程中各个阶段的事件推送。

数据统计

微信公众平台于2015年1月6日启动了数据接口的邀请内测。通过数据接口,开发者可以获取与公众平台官网统计模块类似但更灵活的数据,还可根据需要进行高级处理。
在公众号登录授权机制的权限集划分中,用户分析数据接口属于用户管理权限。
向所有公众号开发者开放数据接口的时间将另行通知。

  1. 用户分析数据接口

    用户分析数据接口指的是用于获得公众平台官网数据统计模块中用户分析数据的接口

  2. 图文分析数据接口

    图文分析数据接口指的是用于获得公众平台官网数据统计模块中图文分析数据的接口

  3. 消息分析数据接口

    消息分析数据接口指的是用于获得公众平台官网数据统计模块中消息分析数据的接口

  4. 接口分析数据接口

    接口分析数据接口指的是用于获得公众平台官网数据统计模块中接口分析数据的接口

微信卡券

卡券这块就是商家外发优惠券,和微信用户使用券的过程

微信门店

门店管理接口为商户提供门店批量导入、查询、修改、删除等主要功能,方便商户快速、高效进行门店管理和操作。

微信小店

微信公众平台本次更新增加了微信小店功能,微信小店基于微信支付,包括添加商品、商品管理、订单管理、货架管理、维权等功能。

微信智能接口

也没什么多智能,就是发段文本过去,微信服务器做个语义分析,结果返回,比如:我想买张上海到北京的飞机票

微信设备功能

设备功能是微信提供的连接人与物的方案,建立在微信硬件平台之上。设备功能允许硬件设备厂商通过服务号,将用户与其拥有的智能设备相连。通过微信硬件平台规定的连接协议,各种智能 设备如蓝牙设备、WIFI设备和其他移动网络设备都能方便的接入微信,完成设备、人、服务三者 的连接。微信硬件平台同时还提供了AirSync, AirKiss等用于蓝牙和WIFI技术的基础支持框架,以及硬件JSAPI等, 以方便硬件开发人员快速地将微信与智能设备进行互联。

新版客服功能

就是把微信用户发送的信息与客服连接起来

微信摇一摇周边

微信摇一摇周边,可以摇到商户的信息

微信连wi-fi

微信用户连商家的wi-fi,连wifi的过程与商家信息交互

微信扫一扫

微信用户扫商家的二维码,扫码的过程与商家信息交互

你可能感兴趣的:(html5,js,node.js)