微信开发——公众号access_token

access_token分为两种(完全不同):

 

  • 全局接口使用凭证access_token
  • 网页授权access_token

区别:

全局access_token有次数限制,有效期是2个小时,每天使用限制是2000次

网页授权access_token无次数限制

1. 全局接口使用凭证access_token其他微信接口需要通过基础支持中的“获取access_token”接口来获取到的全局access_token调用。全局access_token是HTML5网页调用基础接口的全局唯一凭证,有效时间为2小时,每天最多调用2000次。

获取全局access_token接口地址为:

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

获取用户OpenID接口地址:

 

https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=ACCESS_TOKEN  

2. 网页授权access_token:微信网页授权是通过OAuth2.0机制实现的。在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证——网页授权access_token。通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息。网页授权access_token是通过code换取的凭证,用于获取用户的基本信息,次数不限,时间最长5分钟。

微信开发者文档地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

获取网页授权access_token接口地址为:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

获取code接口地址为:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect  

获取用户信息接口:

 

  1. https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN  

参考:

https://blog.csdn.net/weixin_39735923/article/details/79202563

https://blog.csdn.net/dreamparks/article/details/51745413

 

微信开发实现多媒体上传时报"errcode":40014,"errmsg":"invalid access_token"

04-30

[code=java][/code]rnpublic static JSONObject uploadMedia3(String requestUrl,String mediaFileUrl) throws IOExceptionrn rn // 定义数据分割符 rn String boundary = "----------sunlight"; rn String result=null;rn File file=new File("f:\\13343648273775267406.jpg");rn if(!file.exists()||!file.isFile())rn throw new IOException("文件不存在");rn rn URL url=new URL(requestUrl);rn HttpURLConnection conn=(HttpURLConnection) url.openConnection();rn conn.setRequestMethod("POST");rn conn.setDoOutput(true);rn conn.setDoInput(true);rn conn.setUseCaches(false);rn //设置请求头信息rn conn.setRequestProperty("Connection", "keep-Alive");rn conn.setRequestProperty("Charset", "utf-8");rn //设置边界rn boundary=boundary+System.currentTimeMillis();rn conn.setRequestProperty("Content-Type","multipart/form-data;boundary="+boundary);rn //请求正文信息rn //第一部分:rn StringBuffer sb=new StringBuffer();rn sb.append("--");rn sb.append(boundary);rn sb.append("\r\n");rn sb.append("Content-Disposition:form-data;name=\"file\";filename=\""+file.getName()+"\"\r\n");rn sb.append("Content-Type:application/octet-stream\r\n\r\n");rn byte[] head=sb.toString().getBytes("utf-8");rn //获得输出流rn OutputStream out=new DataOutputStream(conn.getOutputStream());rn //输出表头rn out.write(head);rn //文件正文部分rn // 把文件已流文件的方式 推入到url中 rn DataInputStream in=new DataInputStream(new FileInputStream(file));rn int bytes=0;rn byte[] bufferOut=new byte[1024];rn while((bytes=in.read(bufferOut))!=-1)rn out.write(bufferOut,0,bytes);rn rn in.close();rn //结尾部分rn byte[] foot=("\r\n--"+boundary+"--\r\n").getBytes("utf-8");rn //定义最后数据分隔线rn out.write(foot);rn out.flush();rn out.close();rn StringBuffer buffer=new StringBuffer();rn BufferedReader reader=null;rn try rn // 定义BufferedReader输入流来读取URL的响应 rn reader=new BufferedReader(new InputStreamReader(conn.getInputStream()));rn String line=null;rn while((line=reader.readLine())!=null)rn buffer.append(line);rn rn if(result==null)rn result=buffer.toString();rn rn catch (Exception e) rn System.out.println("发送POST请求出现异常!" + e);rn e.printStackTrace();rn throw new IOException("数据读取异常");rn finallyrn if(reader!=null)rn reader.close();rn rn rn System.out.println(result);rn JSONObject jsonObject=new JSONObject().fromObject(result);rn return jsonObject;rn

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试