微信公众平台开发-access_token获取及应用(含源码)

  很多系统中都有access_token参数,对于微信公众平台的access_token参数,微信服务器判断该公众平台所拥有的权限,允许或者禁止公众平台进行当前的操作。

一、access_token作用及使用场景

(一)access_token的作用

  access_token由公众号的AppID和AppSecret组成,所以具有识别公众号的作用。

(二)access_token的使用场景

  可以把它比喻成一个钥匙,通过access_token,微信公众号才能调用微信接口,如微信服务器 IP的获取接口,长链接转短链接接口、获取微信关注用户列表及获取用户基本信息的接口等等。

  微信服务器也是通过access_token来判断公众号是否有调用该接口的权限。如在调用微信服务器IP获取接口时,需要带上access_token参数,微信在接收到请求后会先判断该access_token的公众号是否具有获取微信服务器IP的接口权限,如果有,返回查询的数据,如果没有,会返回该公众号无获取微信服务器IP接口的权限。

(三)access_token的特点

  access_token存储至少要保留512个字符空间。access_token的有效期目前为2个小时,重复获取将导致上次获取的access_token失效。

(四)access_token的存储调用策略

  access_token在后期应用开发中应采取的策略,如图所示,将access_token存储到中控服务器,所有需要用到该参数的程序都应访问中控服务器获取access_token,中控服务器判断当前access_token是否有效并刷新即可。

  

(五)获取access_token值

1.接口说明

http请求方式: GET

接口调用地址:

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

调用参数说明,如表所示:

参数

是否必须

说明

grant_type

获取access_token填写client_credential

appid

第三方用户唯一凭证

secret

第三方用户唯一凭证密钥,即appsecret

返回说明:

正常情况下,微信会返回JSON数据包给公众号:

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

返回参数说明:

参数

说明

access_token

获取到的凭证

expires_in

凭证有效时间,单位:秒

错误时微信会返回错误码等信息,JSON数据包示例如下(该示例为AppID无效错误):

{"errcode":40013,"errmsg":"invalid appid"}

2.参数AppId和AppSecret
  获取access_token时会用到两个非常重要的参数,即AppId和AppSecret,可在开发-基本配置中查看如图所示。

3.获取access_token

<?php
/*
*获取微信token
*/
//1.包含wei_function.php
require('wei_function.php');
$appid="wx78478e595939c538";
$secret="5540e8ccab4f71dfad752f73cfb85780";
//2.获取token地址,并替换$appid和$secret
$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret."";
//3.调用wei_function.php文件内的getdata()函数
$output=getdata($url);
//4.json_decode解码JSON数据转变为数组,并通过
$token=object_array(json_decode($output));
//输出数组
//print_r($token);
//5.输出access_token
echo $token['access_token'];
?>
代码解析
require('wei_function.php');该函数文件可以购买《微信公众平台开发实例教程》,在该书中第95页有详细讲解。
 效果图:

微信公众平台开发2-access_token获取及应用(含源码)的更多相关文章

  1. 微信公众平台开发-OAuth2.0网页授权(含源码)

    微信公众平台开发-OAuth2.0网页授权接口.网页授权接口详解(含源码)作者: 孟祥磊-<微信公众平台开发实例教程> 在微信开发的高级应用中,几乎都会使用到该接口,因为通过该接口,可以获 ...

  2. Java微信公众平台开发(十二)--微信用户信息的获取

    转自:http://www.cuiyongzhi.com/post/56.html 前面的文章有讲到微信的一系列开发文章,包括token获取.菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信 ...

  3. Java微信公众平台开发(十)--微信用户信息的获取

    前面的文章有讲到微信的一系列开发文章,包括token获取.菜单创建等,在这一篇将讲述在微信公众平台开发中如何获取微信用户的信息,在上一篇我们有说道微信用户和微信公众账号之间的联系可以通过Openid关 ...

  4. 第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token

    一.access_token简介 为了使第三方开发者能够为用户提供更多更有价值的个性化服务,微信公众平台 开放了许多接口,包括自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等, 开 ...

  5. 微信公众平台开发-access_token获取及应用(含源码)

    微信公众平台开发-access_token获取及应用(含源码)作者: 孟祥磊-<微信公众平台开发实例教程> 很多系统中都有access_token参数,对于微信公众平台的access_to ...

  6. 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

  7. 第七篇 :微信公众平台开发实战Java版之如何获取微信用户基本信息

    在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同). 公众号可通过本接口来根据O ...

  8. ***微信公众平台开发: 获取用户基本信息+OAuth2.0网页授权

    本文介绍如何获得微信公众平台关注用户的基本信息,包括昵称.头像.性别.国家.省份.城市.语言.本文的方法将囊括订阅号和服务号以及自定义菜单各种场景,无论是否有高级接口权限,都有办法来获得用户基本信息, ...

  9. 微信公众平台开发教程(一)_微信接入校验以及token获取

    微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础. 接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 ...

随机推荐

  1. JAVA 创建文件和文件夹,删除文件和文件夹的实用工具

    package com.file; import java.io.File; import java.io.IOException; //创建新文件和目录 public class CCRDFile ...

  2. Neo4j图形数据库备份

    Neo4j图形数据库备份 backup.sh文件 nowtime=`date +"%Y-%m-%d_%H_%M"` #原文件路径 sourcepath='/home/neo4j/n ...

  3. js date 常用

    1.怎么获取当月的最后一天 var  now=new Date(); new Date(new Date(now.getFullYear(),now.getMonth()+1,1).getTime() ...

  4. mysql 基本知识 以及优化

    msql的索引应用 1.hash索引  等于值比较时 2.tree索引  范围比较 like '%%'

  5. php抓取网站图片源码

    <?php /*完成网页内容捕获功能*/ function get_img_url($site_name){     $site_fd = fopen($site_name, "r&q ...

  6. RAC,ReactiveSwift

    1.创建信号 // 1.通过信号发生器创建(冷信号) let producer = SignalProducer<String, NoError>.init { (observer, _) ...

  7. Spring学习之Aspectj开发实现AOP

    Aspectj是一个基于Java语言的Aop框架,它提供了强大的Aop功能. Aspectj简介: 1.Aspectj是一个面向切面的框架,它扩展了Java语言,它定义了一个Aop语法. 2.所以它有 ...

  8. Docker 三剑客--Machine

    Machine 我们知道在多个集群服务环境下,安装管理Docker的容器,要使用的是Docker Swarm,而使用Docker Swarm的情况是在多个集群的服务器已经搭建好Docker环境的情况下 ...

  9. java 利用管道实现线程间通信

    package com.lb; import java.io.IOException;import java.io.PipedInputStream;import java.io.PipedOutpu ...

  10. JavaSE--枚举类

    参考:http://www.cnblogs.com/hyl8218/p/5088287.html 枚举类声明定义的类型是一个类,因此尽量不要构造新对象. 所有枚举类型都是 java.lang.Enum ...