Heim  >  Artikel  >  Backend-Entwicklung  >  So erhalten Sie WeChat access_token über eine geplante PHP-Aufgabe

So erhalten Sie WeChat access_token über eine geplante PHP-Aufgabe

高洛峰
高洛峰Original
2016-12-20 16:00:431376Durchsuche

Das Beispiel in diesem Artikel beschreibt die Methode zum Erhalten des WeChat access_token durch eine geplante PHP-Aufgabe. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

WeChat access_token scheint während der Entwicklung etwas anders zu sein. Hier stellen wir die Methode zum Erhalten von WeChat access_token durch geplante PHP-Aufgaben vor.

Die öffentliche WeChat-Plattform muss beim Aufruf jeder Schnittstelle access_token verwenden. Access_token ist der global eindeutige Schnittstellenaufruf-Anmeldeinformationen des öffentlichen Kontos und muss während der Entwicklung ordnungsgemäß gespeichert werden. Das access_token ist 7200 Sekunden lang gültig. Bei wiederholter Erfassung wird das letzte access_token ungültig.

Da WeChat die Anzahl der API-Aufrufe zum Erhalten von access_token begrenzt, wird empfohlen, dass Entwickler access_token global speichern und aktualisieren. Eine häufige Aktualisierung von access_token begrenzt API-Aufrufe und beeinträchtigt ihr eigenes Geschäft.

Was ist also eine gute Lösung für den Zugriff auf den Token-Speicher und die Aktualisierung? Mein Ansatz ist: Planen Sie die regelmäßige Aktualisierung der Aufgabe, um das access_token abzurufen, und speichern Sie das access_token dann lokal auf dem Server. Die Speichermethode kann eine Datei, eine Datenbank oder ein Cache sein.

Unten verwende ich PHP, um das access_token abzurufen und es in einer lokalen Datei zu speichern. Erstellen Sie eine access.php mit dem folgenden Code:

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

Die beiden Konstanten AppID und AppSecret im obigen Code werden von der öffentlichen WeChat-Plattform bereitgestellt und können durch Anmelden bei der Grundkonfiguration von WeChat abgerufen werden öffentliche Plattform. Das erhaltene access_token wird in der Datei access_token.php gespeichert. Beachten Sie, dass Benutzer nicht auf den Inhalt dieser Datei zugreifen sollten.

Als nächstes richten wir geplante Aufgaben ein. Wir nehmen Linux CentOS als Beispiel und verwenden crontab, um geplante Aufgaben einzurichten.

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

Der obige Befehl legt fest, dass access.php jede Stunde, also zur 05. Minute jeder Stunde, ausgeführt wird.

Auf diese Weise können wir den normalen Erwerb und die Verwendung von access_token sicherstellen, ohne den WeChat-Server häufig zu aktualisieren.

Ich hoffe, dass dieser Artikel für alle hilfreich ist, die sich mit PHP-Programmierung befassen.

Weitere verwandte Artikel darüber, wie Sie WeChat access_token mit geplanten PHP-Aufgaben erhalten, finden Sie auf der chinesischen PHP-Website!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn