公眾號開發(fā) 第二章

接口調(diào)用憑證access_token

  • PHP發(fā)起網(wǎng)絡(luò)請求方式

    • file_get_contents
    • fsockopen
    • curl


      圖片1.png
  • curl實現(xiàn)get


    圖片2.png
  • curl實現(xiàn)post


    圖片3.png
  • curl實現(xiàn)文件上傳


    圖片4.png
  • 終極函數(shù)

    function http_request($url,$ret='',$file=''){
       if (!empty($file)) {  // 有文件上傳
             //php5.5之前 '@'.$file;就可以進(jìn)地文件上傳
             //$ret['pic'] = '@'.$file;
             //php5.6之后用此方法
             $ret['pic'] = new CURLFile($file);
       }
       // 初始化
       $ch = curl_init();
       //相關(guān)設(shè)置
       //設(shè)置請求的URL地址
       curl_setopt($ch,CURLOPT_URL,$url);
       //請求頭關(guān)閉
       curl_setopt($ch,CURLOPT_HEADER,0);
       //請求的得到的結(jié)果不直接輸出,而是以字符串結(jié)果返回  必寫
       curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
       //設(shè)置請求的超時時間 單位秒
       curl_setopt($ch,CURLOPT_TIMEOUT,30);
       //設(shè)置瀏覽器型號
       curl_setopt($ch,CURLOPT_USERAGENT,'MSIE001');
       //證書不檢查
       curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
       curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
       //設(shè)置為post請求
       if($ret){ # 如果 $ret不為假則是post提交
           # 開啟post請求
           curl_setopt($ch,CURLOPT_POST,1);
           # post請求的數(shù)據(jù) 
           curl_setopt($ch,CURLOPT_POSTFIELDS,$ret);
       }
       // 發(fā)起請求
       $data = curl_exec($ch);
       // 有沒有發(fā)生異常
       if(curl_errno($ch) > 0){
           // 把錯誤發(fā)送給客戶端
           echo curl_error($ch);
           $data = '';
       }
       // 關(guān)閉請求
       curl_close($ch);
       return $data;
    }
    
  • PHP發(fā)起網(wǎng)絡(luò)請求步走
    初始化、相關(guān)設(shè)置、發(fā)送請求、關(guān)閉資源

獲取access_token

  • access_toke是公眾號的全局唯一接口調(diào)用憑據(jù),公眾號調(diào)用各接口時都需使用它。

  • access_token的存儲至少要保留512個字符空間。

  • access_token的有效期目前為2個小時。

  • access_token的每天請求的次數(shù)為2000次。

  • 根據(jù)官方所提的要求,那么我們在實現(xiàn)工作,一定要緩存起來我們access_token。

  • 緩存的方案
    數(shù)據(jù)庫、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 

微信公眾號默認(rèn)沒有開通底部是沒有菜單功能,需要使用者自行來創(chuàng)建開通。

  • 注意點

    • 自定義菜單最多包括3個一級菜單,每個一級菜單最多包含5個二級菜單。
    • 一級菜單最多4個漢字,二級菜單最多7個漢字,多出來的部分將會以“...”代替。
    • 創(chuàng)建自定義菜單后,菜單的刷新策略是,在用戶進(jìn)入公眾號會話頁或公眾號profile頁時,如果發(fā)現(xiàn)上一次拉取菜單的請求在5分鐘以前,就會拉取一下菜單,如果菜單有更新,就會刷新客戶端的菜單。測試時可以嘗試取消關(guān)注公眾賬號后再次關(guān)注,則可以看到創(chuàng)建后的效果。
  • 按鈕事件


    圖片15.png

    • 最常用的自定義類型按鈕為:view 它相當(dāng)有html中的a作用;view想跳轉(zhuǎn)到指定的URL,需要認(rèn)證后的公眾號才可以
  • 自定義菜單創(chuàng)建


    圖片16.png

    圖片17.png

    圖片18.png
  • 自定義菜單數(shù)據(jù)準(zhǔn)備-方式一


    圖片19.png
  • 自定義菜單數(shù)據(jù)準(zhǔn)備-方式二


    圖片20.png
  • 生成菜單文件


    圖片21.png

    圖片22.png
  • 執(zhí)行


    圖片23.png
  • 效果


    圖片24.png
  • 自定義菜單刪除接口


    圖片25.png

    圖片26.png

    圖片27.png
  • 刪除成功


    圖片28.png

    圖片29.png
  • 自定義菜單事件推送.
    事件,大家一定要牢記 click和view 只有認(rèn)證的公眾號使用view事件才能跳轉(zhuǎn)到任意url中。


    圖片31.png

    圖片32.png

    圖片33.png
  • 效果


    圖片34.png

新增素材

公眾號經(jīng)常有需要用到一些多媒體素材的場景,例如在使用接口特別是發(fā)送消息時,對多媒體文件、多媒體消息的獲取和調(diào)用等操作,是通過media_id來進(jìn)行的。素材管理接口對所有認(rèn)證的訂閱號和服務(wù)號開放。

  • 新增臨時素材


    圖片35.png
    • 注意點
      1、臨時素材media_id是可復(fù)用的。
      2、媒體文件在微信后臺保存時間為3天,即3天后media_id失效。
      3、上傳臨時素材的格式、大小限制與公眾平臺官網(wǎng)一致。
      4、圖片(image): 2M,支持PNG\JPEG\JPG\GIF格式
      5、語音(voice): 2M,播放長度不超過60s,支持AMR\MP3格式
      6、視頻(video): 10MB,支持MP4格式
      7、縮略圖(thumb):64KB,支持JPG格式
  • 新增永久素材
    對于常用的素材,開發(fā)者可通過本接口上傳到微信服務(wù)器,永久使用。
    如:企業(yè)logo,小圖標(biāo),公眾號有些場景,規(guī)定只能使用永久素材。

    • 請注意
      1、最近更新:永久圖片素材新增后,將帶有URL返回給開發(fā)者,開發(fā)者可以在騰訊系域名內(nèi)使用(騰訊系域名外使用,圖片將被屏蔽)。
      2、公眾號的素材庫保存總數(shù)量有上限:圖文消息素材、圖片素材上限為5000,其他類型為1000。
      3、素材的格式大小等要求與公眾平臺官網(wǎng)一致:
      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、永久素材的使用一定要謹(jǐn)慎,用于公眾號規(guī)則我們必須用的地方和企業(yè)LOGO。
      2、臨時素材我們可以隨便用。
      3、說明:永久素材上傳時,它的上傳的文件域的名稱必須為 media

  • 實現(xiàn)過程

    • 第1步:制作出文件上傳的表單html


      圖片36.png
    • 第2步:接受表單數(shù)據(jù)實現(xiàn)文件上傳功能


      圖片37.png
    • 第3步:實現(xiàn)把本服務(wù)器中的圖片資源上傳到公眾號平臺去
      臨時接口說明


      圖片38.png
  • 永久素材接口說明


    圖片39.png
    • 編寫實現(xiàn)上傳到公眾號平臺的接口代碼


      圖片40.png
    • 實現(xiàn)上傳


      圖片41.png
    • 入庫


      圖片42.png

      圖片43.png
  • 效果


    image.gif

客服消息

客服消息是一種主動發(fā)送的消息模式,這個就是說微信用戶給公眾號發(fā)信息,在發(fā)送消息后,公眾號可以點對點的進(jìn)行回復(fù)!!
但是也是有條件的限制,只有激活用戶在48小時之內(nèi),可以無限制,發(fā)送消息。

  • 發(fā)送客服消息


    image.gif
  • 如何讓用戶激活


    image.gif

    image.gif
  • 實現(xiàn)過程

    • 第1步:制作表單頁


      圖片44.png
    • 第2步:接受數(shù)據(jù)


      圖片45.png
    • 第3步:實現(xiàn)客服主動發(fā)消息功能、編寫接口代碼


      圖片46.png
    • 實現(xiàn)互通


      圖片47.png
  • 效果


    圖片48.png

生成場景二維碼

  • 場景二維概述


    image.png

    為了滿足用戶渠道推廣分析和用戶帳號綁定等場景的需要,公眾平臺提供了生成帶參數(shù)二維碼的接口。使用該接口可以獲得多個帶不同場景值的二維碼,用戶掃描后,公眾號可以接收到事件推送。

  • 場景二維碼作用

    • 解決關(guān)注時來源問題
  • 使用的場景

    • 加盟
    • 活動場景
    • 分銷系統(tǒng)
  • 目前有2種類型的二維碼

    • 臨時二維碼,是有過期時間的,最長可以設(shè)置為在二維碼生成后的30天(即2592000秒)后過期,但能夠生成較多數(shù)量。臨時二維碼主要用于帳號綁定等不要求二維碼永久保存的業(yè)務(wù)場景
    • 永久二維碼,是無過期時間的,但數(shù)量較少(目前為最多10萬個)。永久二維碼主要用于適用于帳號綁定、用戶來源統(tǒng)計等場景。
  • 生成臨時和永久二維碼

    • 獲取ticket(憑據(jù))
    • 通過ticket(憑據(jù))換取二維碼圖片資源
    • 保存二維碼圖片資源到本機
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容