公众号开发 第二章

接口调用凭证access_token

  • PHP发起网络请求方式

    • file_get_contents
    • fsockopen
    • curl


      图片1.png
  • curl实现get


    图片2.png
  • curl实现post


    图片3.png
  • curl实现文件上传


    图片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.png
  • 推荐使用 memcache缓存


    图片6.png

    图片7.png

    图片8.png

    图片9.png
  • 效果


    图片10.png

    图片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.png

图片13.png

自定义菜单

  • 自定义菜单概述


    图片14.png
   https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141013 

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

  • 注意点

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


    图片15.png

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


    图片16.png

    图片17.png

    图片18.png
  • 自定义菜单数据准备-方式一


    图片19.png
  • 自定义菜单数据准备-方式二


    图片20.png
  • 生成菜单文件


    图片21.png

    图片22.png
  • 执行


    图片23.png
  • 效果


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


    图片25.png

    图片26.png

    图片27.png
  • 删除成功


    图片28.png

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


    图片31.png

    图片32.png

    图片33.png
  • 效果


    图片34.png

新增素材

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

  • 新增临时素材


    图片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


      图片36.png
    • 第2步:接受表单数据实现文件上传功能


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


      图片38.png
  • 永久素材接口说明


    图片39.png
    • 编写实现上传到公众号平台的接口代码


      图片40.png
    • 实现上传


      图片41.png
    • 入库


      图片42.png

      图片43.png
  • 效果


    image.gif

客服消息

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

  • 发送客服消息


    image.gif
  • 如何让用户激活


    image.gif

    image.gif
  • 实现过程

    • 第1步:制作表单页


      图片44.png
    • 第2步:接受数据


      图片45.png
    • 第3步:实现客服主动发消息功能、编写接口代码


      图片46.png
    • 实现互通


      图片47.png
  • 效果


    图片48.png

生成场景二维码

  • 场景二维概述


    image.png

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

  • 场景二维码作用

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

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

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

    • 获取ticket(凭据)
    • 通过ticket(凭据)换取二维码图片资源
    • 保存二维码图片资源到本机
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352

推荐阅读更多精彩内容