Maison interface Web js tutoriel Node.js access_token implémente des exemples d'accès et d'actualisation WeChat

Node.js access_token implémente des exemples d'accès et d'actualisation WeChat

Jan 27, 2018 pm 02:46 PM
access javascript node.js

Cet article présente principalement des exemples d'accès et d'actualisation Node.js WeChat access_token (jsapi_ticket), qui ont une certaine valeur de référence. J'espère que cela pourra aider tout le monde.

access_token

Il existe deux access_tokens dans les documents WeChat : le access_token ordinaire et le access_token d'autorisation Web. Pour les différences spécifiques, reportez-vous à : https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

Les jetons d'accès mentionnés ci-dessous sont tous des jetons d'accès ordinaires

1. Tout d'abord, voyons comment demander la documentation technique de la plateforme publique access_token ?

Requête GET : https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid= APPID&secret=APPSECRET

Retour normal : {"access_token":"ACCESS_TOKEN","expires_in":7200}

Retour d'erreur : {"errcode":40013," errmsg": "appid invalide"}

2. Donc le code pour obtenir access_token est le suivant :


const request = require('request') // 请安装第三方包 request

request.get({
  uri: 'https://api.weixin.qq.com/cgi-bin/token',
  json: true,
  qs: {
   grant_type: 'client_credential',
   appid: APPID, // APPID请换成你的 appid
   secret: APPSECRET // APPSECRET请换成你的 appsecret
  }
 }, (err, res, body) => {
  if (err) {
   console.log(err)
   return
  }
  console.log(body)
  if (body.errcode) {
   // 返回错误时的处理
   return
  }
})
Copier après la connexion

3. guard_dog implémente la persistance et le timing des données. L'actualisation

guard_dog générera des fichiers .dog, chaque fichier correspondant à une CLÉ


const guard_dog = require('guard_dog') // 请安装第三方包 guard_dog

guard_dog.init(KEY, (handler) => { // KEY是guard_dog存取数据的键名
 // 拿到数据后调用 handler
 handler(DATA, EXPIREDS_IN) // DATA是要持久化的数据,EXPIREDS_IN是数据的有效时间,单位是秒
}, DIR) // DIR是 .dog 文件的存放目录,这个参数可以不传
Copier après la connexion

4. les deux morceaux de code ci-dessus ressemblent à l'effet souhaité


const request = require('request')
const guard_dog = require('guard_dog')

guard_dog.init('ACCESS_TOKEN', (handler) => {
 request.get({
  uri: 'https://api.weixin.qq.com/cgi-bin/token',
  json: true,
  qs: {
   grant_type: 'client_credential',
   appid: APPID, // APPID请换成你的 appid
   secret: APPSECRET // APPSECRET请换成你的 appsecret
  }
 }, (err, res, body) => {
  if (err) {
   console.log(err)
   return
  }
  console.log(body)
  if (body.errcode) {
   return
  }
  handler(body.access_token, body.expires_in)
 })
}) // 如有需要指定目录,可以再给 guard_dog.init 多传个参数
Copier après la connexion

5. Une fois que guard_dog a initialisé cette clé, toutes les valeurs obtenues sont des valeurs valides. Le code pour guard_dog pour obtenir la valeur est le suivant :


guard_dog.get('ACCESS_TOKEN', (data) => { // 上面初始化时用的键名为'ACCESS_TOKEN',所以这里取值也要用这个键名
 // 在这里拿到的 data 就是 access_token 了
})
Copier après la connexion

6 Si vous souhaitez le rendre plus pratique, vous pouvez l'encapsuler directement dans un module <. 🎜>

access_token.js


const request = require(&#39;request&#39;)
const guard_dog = require(&#39;guard_dog&#39;)
// 加载这个模块的时候给 ACCESS_TOKEN 这个键名初始化
guard_dog.init(&#39;ACCESS_TOKEN&#39;, (handler) => {
 request.get({
  uri: &#39;https://api.weixin.qq.com/cgi-bin/token&#39;,
  json: true,
  qs: {
   grant_type: &#39;client_credential&#39;,
   appid: APPID, // APPID请换成你的 appid
   secret: APPSECRET // APPSECRET请换成你的 appsecret
  }
 }, (err, res, body) => {
  if (err) {
   console.log(err)
   return
  }
  console.log(body)
  if (body.errcode) {
   return
  }
  handler(body.access_token, body.expires_in)
 })
}) 
// 只要向外暴露一个获取值的方法就可以了
module.exports = function (callback) {
 guard_dog.get(&#39;ACCESS_TOKEN&#39;, callback)
}
Copier après la connexion
Utiliser :


const access_token = require(&#39;./access_token&#39;) // 这里把这个模块与 access_token 模块当成在同一目录下来作为例子。
access_token((data) => {
 // 这个 data 就是 access_token
})
Copier après la connexion
jsapi_ticket

Documentation officielle de jsapi_ticket


L'exemple ci-dessus concernant access_token a été expliqué en détail Le traitement de jsapi_ticket est également très similaire, donc le code est directement publié ci-dessous :

( Une chose à noter : l'obtention de jsapi_ticket doit s'appuyer sur access_token, ce qui suit Le code repose directement sur access_token.js écrit ci-dessus)

jsapi_ticket.js


const request = require(&#39;request&#39;)
const guard_dog = require(&#39;guard_dog&#39;)
const access_token = require(&#39;./access_token&#39;)

guard_dog.init(&#39;JSAPI_TICKET&#39;, (handler) => {
 access_token((access_token) => {
  request.get({
   uri: &#39;https://api.weixin.qq.com/cgi-bin/ticket/getticket&#39;,
   json: true,
   qs: {
    access_token: access_token,
    type: &#39;jsapi&#39;
   }
  }, (err, res, body) => {
   if (err) {
    console.log(err)
    return
   }
   console.log(body)
   if (body.errcode) {
    return
   }
   handler(body.ticket, body.expires_in)
  })
 })
})

module.exports = function (callback) {
 guard_dog.get(&#39;JSAPI_TICKET&#39;, callback)
}
Copier après la connexion
Utilisation :


const jsapi_ticket = require(&#39;./jsapi_ticket&#39;)
jsapi_ticket((data) => {
 // 这个 data 就是 jsapi_ticket
})
Copier après la connexion
Recommandations associées :

Analyse du processus de développement d'un exemple d'accès aux données d'arborescence php

Solution pour l'accès php à MySQL 4.1 Problème de code tronqué

PHP implémente l'effet de cryptage des fichiers texte et de restriction de l'accès à des pages spécifiques_exemple 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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
4 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment désactiver les applications en arrière-plan dans Windows 11_Tutoriel Windows 11 pour désactiver les applications en arrière-plan Comment désactiver les applications en arrière-plan dans Windows 11_Tutoriel Windows 11 pour désactiver les applications en arrière-plan May 07, 2024 pm 04:20 PM

1. Ouvrez les paramètres dans Windows 11. Vous pouvez utiliser le raccourci Win+I ou toute autre méthode. 2. Accédez à la section Applications et cliquez sur Applications et fonctionnalités. 3. Recherchez l'application que vous souhaitez empêcher de s'exécuter en arrière-plan. Cliquez sur le bouton à trois points et sélectionnez Options avancées. 4. Recherchez la section [Autorisations d'application en arrière-plan] et sélectionnez la valeur souhaitée. Par défaut, Windows 11 définit le mode d'optimisation de l'alimentation. Il permet à Windows de gérer le fonctionnement des applications en arrière-plan. Par exemple, une fois que vous avez activé le mode d'économie de batterie pour préserver la batterie, le système fermera automatiquement toutes les applications. 5. Sélectionnez [Jamais] pour empêcher l'application de s'exécuter en arrière-plan. Veuillez noter que si vous remarquez que le programme ne vous envoie pas de notifications, ne parvient pas à mettre à jour les données, etc., vous pouvez

Comment convertir le pdf Deepseek Comment convertir le pdf Deepseek Feb 19, 2025 pm 05:24 PM

Deepseek ne peut pas convertir les fichiers directement en PDF. Selon le type de fichier, vous pouvez utiliser différentes méthodes: documents communs (Word, Excel, PowerPoint): utilisez Microsoft Office, LibreOffice et d'autres logiciels à exporter sous forme de PDF. Image: Enregistrer sous le nom de PDF à l'aide d'une visionneuse d'image ou d'un logiciel de traitement d'image. Pages Web: Utilisez la fonction "Imprimer en PDF" du navigateur ou l'outil Web dédié à PDF. Formats peu communs: trouvez le bon convertisseur et convertissez-le en PDF. Il est crucial de choisir les bons outils et d'élaborer un plan basé sur la situation réelle.

Que signifie Dao en Java Que signifie Dao en Java Apr 21, 2024 am 02:08 AM

DAO (Data Access Object) en Java est utilisé pour séparer le code d'application et la couche de persistance. Ses avantages incluent : Séparation : Indépendante de la logique de l'application, ce qui facilite sa modification. Encapsulation : masquez les détails d'accès à la base de données et simplifiez l'interaction avec la base de données. Évolutivité : facilement extensible pour prendre en charge de nouvelles bases de données ou technologies de persistance. Avec les DAO, les applications peuvent appeler des méthodes pour effectuer des opérations de base de données telles que la création, la lecture, la mise à jour et la suppression d'entités sans traiter directement les détails de la base de données.

Impossible d'autoriser l'accès à la caméra et au microphone sur iPhone Impossible d'autoriser l'accès à la caméra et au microphone sur iPhone Apr 23, 2024 am 11:13 AM

Le message « Impossible d'autoriser l'accès à la caméra et au microphone » s'affiche-t-il lorsque vous essayez d'utiliser l'application ? En règle générale, vous accordez des autorisations de caméra et de microphone à des personnes spécifiques en fonction de leurs besoins. Cependant, si vous refusez l'autorisation, la caméra et le microphone ne fonctionneront pas et afficheront ce message d'erreur à la place. Résoudre ce problème est très simple et vous pouvez le faire en une minute ou deux. Correctif 1 – Fournir les autorisations de caméra et de microphone Vous pouvez fournir les autorisations de caméra et de microphone nécessaires directement dans les paramètres. Étape 1 – Accédez à l'onglet Paramètres. Étape 2 – Ouvrez le panneau Confidentialité et sécurité. Étape 3 – Activez-y l’autorisation « Caméra ». Étape 4 – À l’intérieur, vous trouverez une liste des applications qui ont demandé l’autorisation d’accéder à l’appareil photo de votre téléphone. Étape 5 – Ouvrez la « Appareil photo » de l'application spécifiée

Que signifie le champ en Java Que signifie le champ en Java Apr 25, 2024 pm 10:18 PM

En Java, un « champ » est un membre de données dans une classe ou une interface utilisée pour stocker des données ou un état. Les propriétés du champ incluent : le type (peut être n'importe quel type de données Java), les droits d'accès, statique (appartient à une classe plutôt qu'à une instance), final (immuable) et transitoire (non sérialisé). Le champ est utilisé pour stocker les informations d'état d'une classe ou d'une interface, telles que le stockage des données d'objet et la maintenance de l'état de l'objet.

Comment le mécanisme de réflexion Java modifie-t-il le comportement d'une classe ? Comment le mécanisme de réflexion Java modifie-t-il le comportement d'une classe ? May 03, 2024 pm 06:15 PM

Le mécanisme de réflexion Java permet aux programmes de modifier dynamiquement le comportement des classes sans modifier le code source. En exploitant une classe via l'objet Class, vous pouvez créer des instances via newInstance(), modifier les valeurs des champs privés, appeler des méthodes privées, etc. La réflexion doit toutefois être utilisée avec prudence, car elle peut entraîner un comportement inattendu et des problèmes de sécurité, et entraîner une surcharge en termes de performances.

Comment inter-domaines iframe dans vue Comment inter-domaines iframe dans vue May 02, 2024 pm 10:48 PM

Façons de résoudre les problèmes inter-domaines iframe dans Vue : CORS : activez la prise en charge de CORS dans le serveur backend et utilisez XMLHttpRequest ou l'API de récupération pour envoyer des requêtes CORS dans Vue. JSONP : chargez dynamiquement des scripts JSONP dans Vue à l'aide du point de terminaison JSONP sur le serveur backend. Serveur proxy : configurez un serveur proxy pour transférer les requêtes, utilisez une bibliothèque tierce (telle que axios) dans Vue pour envoyer des requêtes et définissez l'URL du serveur proxy.

Types d'exceptions courants et leurs mesures de réparation dans le développement de fonctions Java Types d'exceptions courants et leurs mesures de réparation dans le développement de fonctions Java May 03, 2024 pm 02:09 PM

Types d'exceptions courants et leurs mesures de réparation dans le développement de fonctions Java Lors du développement de fonctions Java, diverses exceptions peuvent survenir, affectant l'exécution correcte de la fonction. Voici les types d'exceptions courants et leurs mesures de réparation : 1. NullPointerException Description : levée lors de l'accès à un objet qui n'a pas été initialisé. Correctif : assurez-vous de vérifier que l'objet n'est pas nul avant de l'utiliser. Exemple de code : try{Stringname=null;System.out.println(name.length());}catch(NullPointerExceptione){

See all articles