この記事の例では、PHP スケジュールされたタスクを使用して WeChat access_token を取得する方法を説明します。参考のために皆さんと共有してください。詳細は次のとおりです。
WeChatのaccess_tokenは開発中に少し異なるようです。 ここでは、PHPのスケジュールされたタスクでWeChatのaccess_tokenを取得する方法を紹介します。
WeChat パブリック プラットフォームは最近開発されました。パブリック アカウントは、各インターフェイスを呼び出すときに access_token を使用する必要があります。Access_token は、パブリック アカウントの資格情報を呼び出すグローバルに一意であり、開発中に適切に保存する必要があります。 access_token の有効期間は 7200 秒です。取得を繰り返すと、最後の access_token が無効になります。
WeChat では、access_token を取得するための API 呼び出しの数が制限されているため、開発者は access_token を頻繁に更新すると、API 呼び出しが制限され、開発者自身のビジネスに影響を与えることになります。
それでは、access_token ストレージとリフレッシュに対する良い解決策は何でしょうか? 私のアプローチは、定期的に更新するタスクをスケジュールして access_token を取得し、access_token をサーバー上にローカルに保存する方法です。保存方法はファイル、データベース、またはキャッシュです。
以下では、PHP を使用して access_token を取得し、ローカル ファイルに保存します。次のコードで access.php を作成します:
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".AppID."&secret=".AppSecret; $result = http_request($url); //生成文件,保存token $dir = __DIR__; //真实路径,crontab命令的php执行在cli模式下,不能正确识别相对路径,所以使用__DIR__ $filename = $dir."/access_token.php"; create_file($filename, $result); function http_request($url,$data = null){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); if (!empty($data)){ curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return $output; } //生成文件 function create_file($filename, $content){ $fp = fopen($filename, "w"); fwrite($fp, "" . $content); fclose($fp); }
上記のコードの 2 つの定数 AppID と AppSecret は WeChat パブリック プラットフォームによって提供され、WeChat パブリック プラットフォームの基本構成にログインすることで取得できます。取得した access_token は、access_token.php ファイルに保存されます。ユーザーはこのファイルの内容にアクセスしないでください。
次に、スケジュールされたタスクを設定します。Linux CentOS を例として、crontab を使用してスケジュールされたタスクを設定します。
5 * * * * /usr/local/bin/php -f /home/web/access.php >> /dev/null 2>&1
上記のコマンドは、access.php が毎時、つまり毎時 05 分に実行されるように設定します。
このようにして、WeChat サーバーを頻繁に更新することなく、access_token の正常な取得と使用を保証できます。
この記事が PHP プログラミングのすべての人に役立つことを願っています。
PHP スケジュールされたタスクで WeChat access_token を取得する方法に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。