公众号开发 第二章

接口调用凭证access_token

  • PHP发起网络请求方式

    • file_get_contents
    • fsockopen
    • curl


      公众号开发 第二章_第1张图片
      图片1.png
  • curl实现get


    公众号开发 第二章_第2张图片
    图片2.png
  • curl实现post


    公众号开发 第二章_第3张图片
    图片3.png
  • curl实现文件上传


    公众号开发 第二章_第4张图片
    图片4.png
  • 终极函数

    function http_request($url,$ret='',$file=''){
       if (!empty($file)) {  // 有文件上传
             //php5.5之前 '@'.$file;就可以进地文件上传
             //$ret['pic'] = '@'.$file;
             //php5.6之后用此方法
             $ret['pic'] = new CURLFile($file);
       }
       // 初始化
       $ch = curl_init();
       //相关设置
       //设置请求的URL地址
       curl_setopt($ch,CURLOPT_URL,$url);
       //请求头关闭
       curl_setopt($ch,CURLOPT_HEADER,0);
       //请求的得到的结果不直接输出,而是以字符串结果返回  必写
       curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
       //设置请求的超时时间 单位秒
       curl_setopt($ch,CURLOPT_TIMEOUT,30);
       //设置浏览器型号
       curl_setopt($ch,CURLOPT_USERAGENT,'MSIE001');
       //证书不检查
       curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
       curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
       //设置为post请求
       if($ret){ # 如果 $ret不为假则是post提交
           # 开启post请求
           curl_setopt($ch,CURLOPT_POST,1);
           # post请求的数据 
           curl_setopt($ch,CURLOPT_POSTFIELDS,$ret);
       }
       // 发起请求
       $data = curl_exec($ch);
       // 有没有发生异常
       if(curl_errno($ch) > 0){
           // 把错误发送给客户端
           echo curl_error($ch);
           $data = '';
       }
       // 关闭请求
       curl_close($ch);
       return $data;
    }
    
  • PHP发起网络请求步走
    初始化、相关设置、发送请求、关闭资源

获取access_token

  • access_toke是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用它。

  • access_token的存储至少要保留512个字符空间。

  • access_token的有效期目前为2个小时。

  • access_token的每天请求的次数为2000次。

  • 根据官方所提的要求,那么我们在实现工作,一定要缓存起来我们access_token。

  • 缓存的方案
    数据库、redis、mongodb、memcache、文件缓存

  • 文档地址

     https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183 
    
公众号开发 第二章_第5张图片
图片5.png
  • 推荐使用 memcache缓存


    公众号开发 第二章_第6张图片
    图片6.png

    公众号开发 第二章_第7张图片
    图片7.png

    公众号开发 第二章_第8张图片
    图片8.png

    公众号开发 第二章_第9张图片
    图片9.png
  • 效果


    公众号开发 第二章_第10张图片
    图片10.png

    公众号开发 第二章_第11张图片
    图片11.png
//telnet 下查看memcache缓存的列表信息
stats items
STAT items:1:number 2
STAT items:1:age 3054538109
STAT items:1:evicted 0
STAT items:1:evicted_nonzero 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
STAT items:6:number 1
STAT items:6:age 3054538477
STAT items:6:evicted 0
STAT items:6:evicted_nonzero 0
STAT items:6:evicted_time 0
STAT items:6:outofmemory 0
STAT items:6:tailrepairs 0
//查看块中的缓存列表
stats cachedump 6 1
ITEM wx3e7552f91168c93f_key [157 b; 1544673130 s]
get wx3e7552f91168c93f_key
//删除
delete wx3e7552f91168c93f_key
公众号开发 第二章_第12张图片
图片12.png

公众号开发 第二章_第13张图片
图片13.png

自定义菜单

  • 自定义菜单概述


    公众号开发 第二章_第14张图片
    图片14.png
   https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141013 

微信公众号默认没有开通底部是没有菜单功能,需要使用者自行来创建开通。

  • 注意点

    • 自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。
    • 一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“...”代替。
    • 创建自定义菜单后,菜单的刷新策略是,在用户进入公众号会话页或公众号profile页时,如果发现上一次拉取菜单的请求在5分钟以前,就会拉取一下菜单,如果菜单有更新,就会刷新客户端的菜单。测试时可以尝试取消关注公众账号后再次关注,则可以看到创建后的效果。
  • 按钮事件


    公众号开发 第二章_第15张图片
    图片15.png

    • 最常用的自定义类型按钮为:view 它相当有html中的a作用;view想跳转到指定的URL,需要认证后的公众号才可以
  • 自定义菜单创建


    公众号开发 第二章_第16张图片
    图片16.png

    公众号开发 第二章_第17张图片
    图片17.png

    公众号开发 第二章_第18张图片
    图片18.png
  • 自定义菜单数据准备-方式一


    公众号开发 第二章_第19张图片
    图片19.png
  • 自定义菜单数据准备-方式二


    公众号开发 第二章_第20张图片
    图片20.png
  • 生成菜单文件


    公众号开发 第二章_第21张图片
    图片21.png

    公众号开发 第二章_第22张图片
    图片22.png
  • 执行


    公众号开发 第二章_第23张图片
    图片23.png
  • 效果


    图片24.png
  • 自定义菜单删除接口


    公众号开发 第二章_第24张图片
    图片25.png

    公众号开发 第二章_第25张图片
    图片26.png

    公众号开发 第二章_第26张图片
    图片27.png
  • 删除成功


    公众号开发 第二章_第27张图片
    图片28.png

    图片29.png
  • 自定义菜单事件推送.
    事件,大家一定要牢记 click和view 只有认证的公众号使用view事件才能跳转到任意url中。


    公众号开发 第二章_第28张图片
    图片31.png

    公众号开发 第二章_第29张图片
    图片32.png

    公众号开发 第二章_第30张图片
    图片33.png
  • 效果


    公众号开发 第二章_第31张图片
    图片34.png

新增素材

公众号经常有需要用到一些多媒体素材的场景,例如在使用接口特别是发送消息时,对多媒体文件、多媒体消息的获取和调用等操作,是通过media_id来进行的。素材管理接口对所有认证的订阅号和服务号开放。

  • 新增临时素材


    公众号开发 第二章_第32张图片
    图片35.png
    • 注意点
      1、临时素材media_id是可复用的。
      2、媒体文件在微信后台保存时间为3天,即3天后media_id失效。
      3、上传临时素材的格式、大小限制与公众平台官网一致。
      4、图片(image): 2M,支持PNG\JPEG\JPG\GIF格式
      5、语音(voice): 2M,播放长度不超过60s,支持AMR\MP3格式
      6、视频(video): 10MB,支持MP4格式
      7、缩略图(thumb):64KB,支持JPG格式
  • 新增永久素材
    对于常用的素材,开发者可通过本接口上传到微信服务器,永久使用。
    如:企业logo,小图标,公众号有些场景,规定只能使用永久素材。

    • 请注意
      1、最近更新:永久图片素材新增后,将带有URL返回给开发者,开发者可以在腾讯系域名内使用(腾讯系域名外使用,图片将被屏蔽)。
      2、公众号的素材库保存总数量有上限:图文消息素材、图片素材上限为5000,其他类型为1000。
      3、素材的格式大小等要求与公众平台官网一致:
      4、图片(image): 2M,支持bmp/png/jpeg/jpg/gif格式
      5、语音(voice):2M,播放长度不超过60s,mp3/wma/wav/amr格式
      6、视频(video):10MB,支持MP4格式
      7、缩略图(thumb):64KB,支持JPG格式


    • 1、永久素材的使用一定要谨慎,用于公众号规则我们必须用的地方和企业LOGO。
      2、临时素材我们可以随便用。
      3、说明:永久素材上传时,它的上传的文件域的名称必须为 media

  • 实现过程

    • 第1步:制作出文件上传的表单html


      公众号开发 第二章_第33张图片
      图片36.png
    • 第2步:接受表单数据实现文件上传功能


      公众号开发 第二章_第34张图片
      图片37.png
    • 第3步:实现把本服务器中的图片资源上传到公众号平台去
      临时接口说明


      公众号开发 第二章_第35张图片
      图片38.png
  • 永久素材接口说明


    公众号开发 第二章_第36张图片
    图片39.png
    • 编写实现上传到公众号平台的接口代码


      公众号开发 第二章_第37张图片
      图片40.png
    • 实现上传


      公众号开发 第二章_第38张图片
      图片41.png
    • 入库


      公众号开发 第二章_第39张图片
      图片42.png

      公众号开发 第二章_第40张图片
      图片43.png
  • 效果


    公众号开发 第二章_第41张图片
    image.gif

客服消息

客服消息是一种主动发送的消息模式,这个就是说微信用户给公众号发信息,在发送消息后,公众号可以点对点的进行回复!!
但是也是有条件的限制,只有激活用户在48小时之内,可以无限制,发送消息。

  • 发送客服消息


    公众号开发 第二章_第42张图片
    image.gif
  • 如何让用户激活


    公众号开发 第二章_第43张图片
    image.gif

    image.gif
  • 实现过程

    • 第1步:制作表单页


      公众号开发 第二章_第44张图片
      图片44.png
    • 第2步:接受数据


      公众号开发 第二章_第45张图片
      图片45.png
    • 第3步:实现客服主动发消息功能、编写接口代码


      公众号开发 第二章_第46张图片
      图片46.png
    • 实现互通


      公众号开发 第二章_第47张图片
      图片47.png
  • 效果


    公众号开发 第二章_第48张图片
    图片48.png

生成场景二维码

  • 场景二维概述


    image.png

    为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。

  • 场景二维码作用

    • 解决关注时来源问题
  • 使用的场景

    • 加盟
    • 活动场景
    • 分销系统
  • 目前有2种类型的二维码

    • 临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景
    • 永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。
  • 生成临时和永久二维码

    • 获取ticket(凭据)
    • 通过ticket(凭据)换取二维码图片资源
    • 保存二维码图片资源到本机

你可能感兴趣的:(公众号开发 第二章)