【微信開發】訂閱號的創建、根據關鍵詞回復文本,視頻,圖片,音頻


小白的微信開發第一天,廢話少說直接動手做!

 

 

【訂閱號】

  1.進入官網微信開發公眾平台,選擇立即注冊

    https://mp.weixin.qq.com/

    微信開發

  

  2.根據實際情況選擇要注冊的賬號類型(個人一般訂閱號即可)

    注冊訂閱號

  

公眾平台服務號、訂閱號、企業號的相關說明

  1、訂閱號:主要偏於為用戶傳達資訊(類似報紙雜志),認證前后都是每天只可以群發一條消息;
  2、服務號:主要偏於服務交互(類似銀行,114,提供服務查詢),認證前后都是每個月可群發4條消息;
  3、企業號:主要用於公司內部通訊使用,需要先驗證身份才可以關注成功企業號。
 
溫馨提示:
  1)如果想簡單的發送消息,達到宣傳效果,建議可選擇訂閱號;
  2)如果想用公眾號獲得更多的功能,例如開通微信支付,建議可以選擇服務號;
  3)如果想用來管理內部企業員工、團隊,對內使用,可申請企業號;
  4)訂閱號可通過微信認證資質審核通過后有一次升級為服務號的入口,升級成功后類型不可再變;
  5)服務號不可變更成訂閱號。
  
 
圖例說明:
  
 
3.填寫信息
 
  
 
 

  3.1 填寫郵箱后選擇激活郵箱,登錄郵箱打開郵件復制驗證碼粘貼到郵箱驗證碼

    3.1.1 發送驗證碼

    注冊微信訂閱號

     3.1.2 復制驗證碼

     微信平台驗證碼

     3.1.3 粘貼驗證碼並填寫信息,點擊注冊

    

  3.2 選擇類型(根據自己實際情況選擇)

    3.2.1 選擇地區

      注冊微信訂閱號

      3.2.2 選擇服務類型(我選擇的是訂閱號)

         注冊微信訂閱號

     ps:類型一旦選擇不可修改!

     注冊微信訂閱號

 

   3.3 信息登記

    3.3.1 根據自己情況選擇(我選擇的為個人)

    注冊微信訂閱號

     3.3.2  填寫基本信息並掃碼驗證

      注冊微信訂閱號

      ps:主體信息提交后不可修改

     

 

   3.4 公眾號信息填寫

    3.4.1 填寫信息

    注冊微信訂閱號

     3.4.2 前往公眾平台

    注冊微信訂閱號

     公眾平台頁面

    注冊微信訂閱號

 

選擇右上角--》賬號詳情可上傳頭像和獲取訂閱號二維碼

 微信開發

 

 

 

到此微信訂閱號注冊完成,接下來進入開發環節,沒有服務器的可以選擇公眾平台測試賬號

微信開發

 

 

 

【微信開發】

   1.基本配置

    訂閱號的主頁面---》開發---》基本配置

    微信開發

     

        勾選我同意---》成為開發者

     微信開發

     ps:

       成為微信公眾平台開發者,你將可以使用公眾平台的開發接口,在你自身服務器上接收用戶的微信消息,並可按需回復。此外,我們還提供了更多更高級的接口來完善公眾號的功能:

        1. 會話界面的自定義菜單

        2. 多客服接口,提供貼心快捷的客服服務

        3. 獲取用戶地址位置,精確提供服務

        4. 高級群發接口,實現更靈活的群發能力

        5. 用戶分組接口,方便管理用戶

        還有很多接口,等你來體驗。

    

  2.啟用開發者密碼(密碼需要自己保存)

    2.1 啟用

    微信開發

     2.2 按流程操作

      2.2.1 身份確認

         微信開發

        2.2.2 密碼驗證

       

       2.2.3  查看開發者密碼,確定進入下一步設置白名單

     

      2.2.4  設置白名單(很重要,昨天就被這家伙給坑了)

      

 

 

      2.2.4.1  獲取到自己的IP外網

       騰訊IP分享計划

       微信開發 關鍵詞回復

         輸入IP確定后,然后掃碼確認即可

 

  3. 啟用服務器配置

    3.1 修改配置

      微信開發 關鍵詞回復

     3.2 配置頁面

      3.2.1 微信端配置

        1. URL是開發者用來接收微信消息和事件的接口URL,你服務器的公網IP或者域名

        2. Token可由開發者可以任意填寫,用作生成簽名(該Token會和接口URL中包含的Token進行比對,從而驗證安全性)

        3. EncodingAESKey由開發者手動填寫或隨機生成,將用作消息體加解密密鑰

 

        微信開發

        3.2.2 服務器端配置

        https://github.com/wangyang0210/WeCheat/tree/master/checkToken

          通過遠程連接工具將此文件放入到你服務器網頁的根目錄下,index.php中的token值要和微信端填寫的token值一致,否則會驗證不通過

          

       3.2.3 提交驗證

        成功后點擊啟用

          

           ps:

            

     3.3 擼代碼

      寫了這么多終於可以擼代碼了,代碼如下

      參考文檔:  被動回復用戶消息

index.php      

 

<?php
    $postStr = file_get_contents("php://input");
    file_put_contents('./data.txt', $postStr);

    if (!empty($postStr)){

            libxml_disable_entity_loader(true);
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            $fromUsername = $postObj->FromUserName;
            $toUsername = $postObj->ToUserName;
            $keyword = trim($postObj->Content);
            $time = time();
            $textTpl = "<xml>
                        <ToUserName><![CDATA[%s]]></ToUserName>
                        <FromUserName><![CDATA[%s]]></FromUserName>
                        <CreateTime>%s</CreateTime>
                        <MsgType><![CDATA[%s]]></MsgType>
                        <Content><![CDATA[%s]]></Content>
                        <FuncFlag>0</FuncFlag>
                        </xml>";
            if(!empty( $keyword ))
            {

                if ($keyword == '圖片') {

                        $imgtml = "
                                    <xml>
                                        <ToUserName><![CDATA[%s]]></ToUserName>
                                        <FromUserName><![CDATA[%s]]></FromUserName>
                                        <CreateTime>%s</CreateTime>
                                        <MsgType><![CDATA[image]]></MsgType>
                                        <Image><MediaId><![CDATA[%s]]></MediaId></Image>
                                   </xml>
                                ";
                        $imgid = "w9ffB-g3DM1yZWiGbx7rHm9IkW9mOv7vs4WRMwTEfr0v9lsiMy9DTc6izeqrJqUL";
                        $resultStr = sprintf($imgtml,$fromUsername,$toUsername,$time,$imgid);
                        echo $resultStr;
                }else if ($keyword == '音樂') {
                        $musicTml = "<xml>
                                        <ToUserName><![CDATA[%s]]></ToUserName>
                                        <FromUserName><![CDATA[%s]]></FromUserName>
                                        <CreateTime>%s</CreateTime>
                                        <MsgType><![CDATA[music]]></MsgType>
                                        <Music>
                                           <Title><![CDATA[有我不怕]]></Title>
                                           <Description><![CDATA[送給我的小媳婦兒]]></Description>
                                           <MusicUrl><![CDATA[%s]]></MusicUrl>
                                           <HQMusicUrl><![CDATA[%s]]></HQMusicUrl>
                                        </Music>
                                     </xml>";
                        $musicUrl = "http://wangnana.cn/love.mp3";
                        $resultStr = sprintf($musicTml,$fromUsername,$toUsername,$time,$musicUrl,$musicUrl);
                        echo $resultStr;
                }else if ($keyword == '視頻') {
                        
                        $videotml =" 
                                <xml>
                                  <ToUserName><![CDATA[%s]]></ToUserName>
                                  <FromUserName><![CDATA[%s]]></FromUserName>
                                  <CreateTime>%s</CreateTime>
                                  <MsgType><![CDATA[video]]></MsgType>
                                <Video>
                                  <MediaId><![CDATA[%s]]></MediaId>
                                  <Title><![CDATA[視頻回復]]></Title>
                                  <Description><![CDATA[測試視頻]]></Description>
                               </Video>
                                </xml>";   

                                $videoid = "8OgNkp7FKFpwd3NRBIy10i8611O6UHumzW_wjTx3W1X-c5rlQ-GAUaEgS3vnREM1";
                                $resultStr = sprintf($videotml,$fromUsername,$toUsername,$time,$videoid);
                                echo $resultStr;                

                }else{
                    $msgType = "text";
                    $contentStr = "歡迎來到我們的世界,接下來是吃狗糧的時間!";
                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                    echo $resultStr;
                }


            }else{
                echo "啊哦,要親親(づ ̄3 ̄)づ╭❤~";
            }

    }else {
        echo "";
        exit;
    }

 

 

 

    3.4 如何獲取視頻/圖片的media_id(沒寫方法,利用開發者工具中的接口調試工具來獲取的)

      微信公眾平台接口調試工具

         3.4.1  獲取access_token的值

         這時候就用到前面基本配置的兩個值了還有我們的白名單,如果出問題那就請查看你現在的外網IP是否在白名單中,如果你的AppSecret沒保存那只好重置開發者密碼咯

         

             都沒有問題后,返回的值就是我們需要的access_token咯

          微信開發

         3.4.2  獲取到圖片的media_id

             接口類型--->基礎支持

             接口列表---->多媒體文件上傳接口/media/upload

             參數列表

              access_token ---->剛才獲取的token

              type---->img

              media---->選擇上傳的文件

          我上傳的是2.jpg

          微信開發

          點擊檢查獲取media_id

        微信開發

  測試效果:

      一通百通,這個是寫死的,接下來就是把死的轉活,視頻的同理,音樂的直接文檔就可以搞出來,讓我偷下懶吧~

      

         

一上午都在弄這個,有點浪費時間,不過加深了自己的理解也是很不錯的一件事

  如果出錯請看https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433747234,當然也可以和我這個小白分享,我可是很願意解決問題的,時間允許的情況下哈~

       

 

       

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM