ホームページ >バックエンド開発 >PHPチュートリアル >PHP スケジュールされたタスクを使用して WeChat access_token を取得するメソッドの共有例

PHP スケジュールされたタスクを使用して WeChat access_token を取得するメソッドの共有例

墨辰丷
墨辰丷オリジナル
2018-06-01 10:16:062092ブラウズ

この記事では主にPHPのスケジュールされたタスクによってWeChatのaccess_tokenを取得する方法を紹介し、CentOS上でcurlとcrontabに基づいて動的にaccess_tokenを取得するPHPの関連操作スキルを含みます。必要な友人はそれを参照できます

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 が 1 時間ごと、つまり毎時の 05 分に実行されるように設定します。

このようにして、WeChat サーバーを頻繁に更新することなく、access_token の正常な取得と使用を保証できます。

要約: 上記がこの記事の全内容です。皆様の学習に役立つことを願っています。

関連する推奨事項:

php array_merge_recursive 配列の結合

PHP XML と配列の変換例の詳細

PHP による XML コンテンツの変更と削除の例

以上がPHP スケジュールされたタスクを使用して WeChat access_token を取得するメソッドの共有例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。