Maison >développement back-end >tutoriel php >Exemple de partage de méthodes pour obtenir WeChat access_token à l'aide de tâches planifiées PHP

Exemple de partage de méthodes pour obtenir WeChat access_token à l'aide de tâches planifiées PHP

墨辰丷
墨辰丷original
2018-06-01 10:16:062094parcourir

Cet article présente principalement la méthode d'obtention du jeton d'accès WeChat par des tâches planifiées PHP, impliquant les compétences opérationnelles associées de PHP pour obtenir dynamiquement un jeton d'accès basé sur la configuration des tâches planifiées par curl et crontab sous CentOS. Les amis dans le besoin peuvent se référer à

WeChat L'access_token semblera être légèrement différent au cours du développement. Nous présenterons ici la méthode d'obtention de WeChat access_token par les tâches planifiées PHP.


La plate-forme publique WeChat a été récemment développée. Le compte public doit utiliser access_token lors de l'appel de chaque interface. Access_token est l'identifiant d'appel d'interface unique au monde du compte public et doit être correctement enregistré pendant le développement. . Le access_token est valide pendant 7 200 secondes. Une acquisition répétée rendra le dernier access_token invalide.

Étant donné que WeChat limite le nombre d'appels API pour obtenir access_token, il est recommandé aux développeurs de stocker et de mettre à jour access_token à l'échelle mondiale. L'actualisation fréquente de access_token limitera les appels API et affectera leur propre activité.

Alors, quelle est une bonne solution pour le stockage et l'actualisation des access_token ? Mon approche est la suivante : planifiez l'actualisation régulière de la tâche pour obtenir le access_token, puis enregistrez le access_token localement sur le serveur. La méthode de sauvegarde peut être un fichier, une base de données ou un cache.

Ci-dessous, j'utilise PHP pour obtenir le access_token et l'enregistrer dans un fichier local. Créez un access.php avec le code suivant :

$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);
}

Les deux constantes AppID et AppSecret dans le code ci-dessus sont fournies par la plateforme publique WeChat et peuvent être connecté pour l'obtenir à partir de la configuration de base de la plateforme publique WeChat. Le access_token obtenu est enregistré dans le fichier access_token.php. Notez que le contenu de ce fichier ne doit pas être accessible aux utilisateurs.

Ensuite, nous configurons les tâches planifiées. Nous prenons Linux CentOS comme exemple et utilisons crontab pour configurer les tâches planifiées.

5 * * * * /usr/local/bin/php -f /home/web/access.php >> /dev/null 2>&1

La commande ci-dessus définit access.php pour qu'il soit exécuté toutes les heures, c'est-à-dire à la 05e minute de chaque heure.

De cette façon, nous pouvons garantir l'acquisition et l'utilisation normales d'access_token sans actualiser fréquemment le serveur WeChat.

Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

php array_merge_recursive Fusion de tableaux

Exemples de conversion PHP XML et de tableau détaillés explication

Exemples de modification et de suppression de contenu XML avec PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn