이 글은 특정 참고 가치가 있는 Node.js WeChat access_token ( jsapi_ticket ) 액세스 및 새로 고침의 예를 주로 소개합니다. 관심이 있으시면 모두에게 도움이 되길 바랍니다.
access_token
WeChat 문서에는 일반 access_token과 웹 인증 access_token이라는 두 가지 access_token이 있습니다. 구체적인 차이점은 다음을 참조하세요: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842
아래에 언급된 access_tokens는 모두 일반적인 access_tokens입니다
1. access_token 요청 방법 :" ACCESS_TOKEN","expires_in":7200}
Error return: {"errcode":40013,"errmsg":"invalid appid"}
2 따라서 access_token을 얻는 코드는 다음과 같습니다.
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 } })
3.guard_dog은 데이터 지속성을 구현하고 정기적인 새로 고침
guard_dog은 .dog 파일을 생성하며, 각 파일은 KEY
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 文件的存放目录,这个参数可以不传
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 多传个参数
5.guard_dog이 이 키를 초기화한 후 모든 유효한 값을 얻습니다. 값을 얻기 위한 Guard_dog의 코드는 다음과 같습니다:
guard_dog.get('ACCESS_TOKEN', (data) => { // 上面初始化时用的键名为'ACCESS_TOKEN',所以这里取值也要用这个键名 // 在这里拿到的 data 就是 access_token 了 })
6. 더 편리하게 사용하려면
access_token.js
const request = require('request') const guard_dog = require('guard_dog') // 加载这个模块的时候给 ACCESS_TOKEN 这个键名初始化 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) }) }) // 只要向外暴露一个获取值的方法就可以了 module.exports = function (callback) { guard_dog.get('ACCESS_TOKEN', callback) }
모듈에 직접 캡슐화할 수 있습니다.
const access_token = require('./access_token') // 这里把这个模块与 access_token 模块当成在同一目录下来作为例子。 access_token((data) => { // 这个 data 就是 access_token })
jsapi_ticket
jsapi_ticket 공식 문서 설명
위의 access_token 예시를 통해 jsapi_ticket의 처리 방식도 유사하므로 아래에 코드를 직접 붙여넣었습니다.
(주의할 점 : jsapi_ticket을 가져오는 것은 access_token에 의존해야 하며 다음 코드는 위에 작성된 access_token.js에 직접적으로 의존합니다.)
const request = require('request') const guard_dog = require('guard_dog') const access_token = require('./access_token') guard_dog.init('JSAPI_TICKET', (handler) => { access_token((access_token) => { request.get({ uri: 'https://api.weixin.qq.com/cgi-bin/ticket/getticket', json: true, qs: { access_token: access_token, type: 'jsapi' } }, (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('JSAPI_TICKET', callback) }
사용:
const jsapi_ticket = require('./jsapi_ticket') jsapi_ticket((data) => { // 这个 data 就是 jsapi_ticket })
관련 권장 사항:
php 트리 구조 데이터 액세스 인스턴스 개발 프로세스 분석
해결책 PHP 액세스 mysql 4.1 잘못된 코드 문제
PHP는 텍스트 파일을 암호화하고 특정 페이지에 대한 액세스를 제한하는 효과를 구현합니다_php 예제
위 내용은 Node.js access_token은 WeChat 액세스 및 새로 고침 예시를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!