ホームページ > WeChat アプレット > WeChatの開発 > WeChat パブリック アカウント開発に関する完全なチュートリアル 1

WeChat パブリック アカウント開発に関する完全なチュートリアル 1

不言
リリース: 2019-11-30 10:03:50
オリジナル
93003 人が閲覧しました

この記事では、WeChat パブリック アカウントの開発に関する完全なチュートリアルを紹介します。これを必要とする友人に共有します。

過去 2 年間で、WeChat の公開アカウントで小規模なプログラム、さらに多くのプロジェクトが制作されました。だからこそ、私は包括的な制作チュートリアルを書くつもりです。もちろん、最良のチュートリアルは WeChat 作業プラットフォームのドキュメントです。ここでは私の作品の制作過程についてお話します。私はすべての関連記事のソース コードを自分の github でホストしています。フォローを歓迎します。アドレスをクリックしてリンクを開きます。チュートリアルを始めましょう。

1. WeChat とパブリック プラットフォームの違い:

WeChat: インスタント チャット ソフトウェア、1 対 1 の関係

WeChat パブリック プラットフォーム: 1 対多の関係。

2. サブスクリプション アカウントとサービス アカウントの違い:

サブスクリプション アカウント: 1 メッセージは個人またはグループのメディアに毎日送信できます。デフォルトではカスタム メニューはありません。 サーバー番号: 企業または銀行の場合、デフォルトでカスタムメニューを使用して、毎月4のメッセージを一括送信できます。 運営主体が組織(企業、メディア、慈善団体など)の場合は、サービスアカウントを申請できます。組織および個人である運用主体はサブスクリプション アカウントを申請できますが、個人はサービス アカウントを申請できません。

3. パブリック プラットフォームの 2 つのモード:

1、編集モード: ユーザー インタラクションのために WeChat パブリック プラットフォームによって提供されるバックグラウンド操作を直接使用します。編集モードは次のシナリオで使用できます: 開発能力のないオペレーター、主にブランドプロモーション、ニュースメディア、およびセルフサービスカスタマーサービス用の公開アカウント、運用の初期段階では編集の必要はありません機能が多すぎるため、 開発モード システムのアップグレード、障害、その他の特殊な状況

2、開発者モード: インターフェイス コードを直接使用してユーザー コミュニケーションを実現します

4. WeChat パブリック プラットフォームの準備:

パブリック プラットフォームを登録し、オンライン サーバーを用意します

5. 編集モードを理解する:

原則:

5.1 マス メッセージング:

マス メッセージング用のオブジェクトとマテリアルを選択する:


5.2: カスタムメニュー:

カスタマイズを有効にする メニューを定義してオンにします:


クリックして表示し、設定インターフェイスに入ります:



5.3 自動応答:


上記の説明は主に編集モードの使用方法に関するもので、実際には、私たちが通常フォーラムで記事や投稿を編集する方法と似ていると思います。

6. 開発者モード

原則:


6.1 最初のステップは、開発者モードをオンにすることです:

注: 開発者モードをオンにすると、編集モードの一部の機能が正常に使用できなくなります。つまり、開発者モードとエディター モードの間に競合が存在します。 設定インターフェイスに入ります:


設定を変更します:


設定結果は以下のようになります: サーバーファイルアドレス、トークンを入力し、送信をクリックして確認します。送信して検証されると、開発者モードに入ります



6.2 私のオンライン認証コードは次のとおりです:


public function valid(){
//获取随机字符串
$echoStr = input("echostr");
if($echoStr){
// 验证接口的有效性,由于接口有效性的验证必定会传递echostr 参数
if($this ->checkSignature()){
echo $echoStr;
exit;
}
}else{
$this->responseMsg();
}
}
protected function checkSignature()
{
// 微信加密签名
$signature = input("signature");
$timestamp = input("timestamp");//时间戳
$nonce =input("nonce");//随机数
$token = "weixin";  //token值,必须和你设置的一样
$tmpArr =array($token,$timestamp,$nonce);
sort($tmpArr,SORT_STRING);
$tmpStr = implode($tmpArr);
$tmpStr =sha1($tmpStr);
if($tmpStr == $signature){
return true;
}else{
return false;
}
}
ログイン後にコピー

上記のコードの変数のソースについては、WeChat に詳細な手順が記載されています。私が構築したパブリック アカウントは、PHP7.0 バージョンと TP5.0 フレームワークを使用しています。ここで説明してください。

上記のコードは一度だけ実行されます。開発者モードをオンにした後は、上記のコード内の

responseMsg

メソッドのみが実行されます。

最初にテスト コードをアップロードして、テキスト メッセージに返信するかどうかを確認してみましょう。コードは次のとおりです。


public function responseMsg()
{
        //get post data, May be due to the different environments
        $postStr = file_get_contents('php://input');    
  //extract post data
        if (!empty($postStr)){
/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,
                   the best way is to check the validity of xml by yourself */
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 ))
{
      $msgType = "text";
    $contentStr = "Welcome to wechat world!";
    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
    echo $resultStr;
}else{
    echo "Input something...";
}
}else {
    echo "";
    exit;
}
}
ログイン後にコピー

の制限により、結果は次のとおりです。 WeChat の Web 認証では、テスト アカウントを申請できます。ここで使用しているのはテスト アカウントです。前述の開発者モードをオンにする場合も同様です。テストアカウントを申請するだけです。適用先:


上記のコードが表示された場合は、テストが成功したことを意味します。次に、access_token の値の取得を開始します。このパラメーターは私たちにとって非常に重要です。
access_token

は公式アカウントの認証情報を呼び出す世界的に一意なインターフェースであるため、公式アカウントは各インターフェースを呼び出す際に

access_token

を使用する必要があります。開発者はそれを適切に保存する必要があります。 access_tokenのストレージには、少なくとも512文字スペースを予約する必要があります。 access_tokenの有効期間は現在2時間であり、定期的に更新する必要があるため、最後に取得したaccess_tokenは無効になります。 access_token は ID 認証です。他のインターフェイスは基本的にこの値を使用して検証する必要があります。 7.access_token の取得: (ローカルでテスト可能)

7.1 インターフェースの説明を表示:


access_tokenを取得する 方法 1:

結果は次のとおりです:


access_token

を取得する

結果は次のとおりです:

us 上記のコードのカプセル化を開始します。

7.2:curl封装发送请求和获取access_token封装:


// 获取请求的地址的方法

i

f(!function_exists("http_curl")){
function http_curl($url,$data =array(),$method ="get",$returnType ="json")
{
//1.开启会话
$ch = curl_init();
//2.设置参数
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
if($method!="get"){
curl_setopt($ch,CURLOPT_POST,TRUE);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
}
curl_setopt($ch,CURLOPT_URL,$url);
//执行会话
$json = curl_exec($ch);
curl_close($ch);
if($returnType == "json"){
return json_decode($json,true);
}
return $json;
}
}
if(!function_exists(&#39;get_access_token&#39;)){
function get_access_token()
{
$appid = "wx1ba8f59d9e2c0be0"; //微信的appid
$secret ="9e65155599fb9ec047455e197ff6e121"; //微信的开发者密钥
// 读取缓存中的内容
include_once "MyMemcache.php";  //引入缓存方法文件
$obj = new \MyMemcache("47.104.71.253");
$value = $obj ->get($appid);
if(!$value){
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret;
$result = http_curl($url);
$value = $result[&#39;access_token&#39;];
$obj->set($appid,$value,7000);
}
return $value;
}
}
ログイン後にコピー

上述代码就是我对这两个方法的封装,其中我们用到了缓存技术:缓存的方法如下:


// memcache操作类

class MyMemcache{
public $conn;
public $isMemcache =true;
public function __construct($host="127.0.0.1",$port=&#39;11211&#39;)
{
//  建立连接
if(class_exists(&#39;MyMemcache&#39;)){
$obj =new \Memcache();
}else{
$this ->isMemcache =false;
$obj =new \Memcached();
}
$obj ->addServer($host,$port);
$this ->conn =$obj;
}
//获取数据    
public function get($key)
{
return $this->conn->get($key);
}
//设置数据
public function set($key,$value,$expire=0)
{
if($this->isMemcache){
$this->conn->set($key,$value,0,$expire);
}else{
// Memcached扩展的操作方式
$this->conn->set($key,$value,$expire);
}
}
}
ログイン後にコピー

结合上述的三个方法,我们就可以实现获取access_token的值,并保存在缓存系统,7000s去重新获取一次。

上述的步骤完成,我们就算是对微信公众号的开发的基本准备全部准备完毕,接下来就开始对着微信开发者文档进行开发和数据的替换了。第一节先讲述到这里.....

相关文章推荐:
1.微信公众号开发完整教程二
2.微信公众号开发完整教程三
3.微信公众号开发完整教程四
相关视频推荐:
1.php微信接口开发实战项目视频教程 聊天机器人+微信支付
2.开发微信小程序视频教程

以上がWeChat パブリック アカウント開発に関する完全なチュートリアル 1の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート