微信公众号关注

package cn.com.taiji.oosweb.httpserver;

import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import cn.com.taiji.oosweb.manager.helper.JsonUtil;
import cn.com.taiji.oosweb.web.wx.authdeny.NetTools;

import net.sf.json.JSONObject;

public class method {
static String appsecret ="";
static String appId ="";

@SuppressWarnings("deprecation")
public static void main(String[] args) {

appId = "wx2faec6d97bb8d50a";
appsecret = "ed4a837d65d26018e4eb96cc1006c078";
String requestUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
//获取access_token
requestUrl = requestUrl.replace("APPID", appId);
requestUrl = requestUrl.replace("APPSECRET", appsecret);
JSONObject jsonObject = NetTools.httpsRequest(requestUrl, "GET", null);
String access_token = (String) jsonObject.get("access_token");
String str = getTemporaryQR("910000000010000000001000000000",access_token);
JSONObject jsonObject1 = JsonUtil.getJSONObject(str);
System.err.println(jsonObject1.get("url"));

String mblbUrl = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket="+java.net.URLEncoder.encode((String) jsonObject1.get("ticket"));
System.err.println((String) jsonObject1.get("ticket"));
// mblbUrl = mblbUrl.replace("TICKET",java.net.URLEncoder.encode((String) jsonObject1.get("ticket")) );
// System.err.println(mblbUrl);
JSONObject mblb = NetTools.httpsRequest(mblbUrl, "GET", null);
// System.out.println(mblb);
downloadFile(mblbUrl,"C:/");
}

public static Boolean downloadFile(String urlString, String filePath){
// 构造URL
URL url;
try {
url = new URL(urlString);
// 打开连接
URLConnection con;
try {
con = url.openConnection();
// 输入流
InputStream is = con.getInputStream();
// 1K的数据缓冲
byte[] bs = new byte[1024];
// 读取到的数据长度
int len;
// 输出的文件流
OutputStream os = new FileOutputStream(filePath);
// 开始读取
while ((len = is.read(bs)) != -1) {
os.write(bs, 0, len);
}
// 完毕,关闭所有链接
os.close();
is.close();
return true;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}

} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}

}

public static String getTemporaryQR(String scene_id,String access_token){
//获取数据的地址(微信提供)
String url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token="+access_token;

//发送给微信服务器的数据
String jsonStr = "{\"expire_seconds\": 2592000,\"action_name\": \"QR_SCENE\", \"action_info\": {\"scene\": {\"scene_id\": "+scene_id+"}}}";

//将得到的字符串转化成json对象
String response = sendPost(jsonStr, url);
return response.toString();
}

public static String sendPost(String param, String url) {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
// out = new PrintWriter(conn.getOutputStream());
out = new PrintWriter(new OutputStreamWriter(
conn.getOutputStream(), "utf-8"));
// 发送请求参数
out.print(param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(
conn.getInputStream(), "UTF-8"));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输出流、输入流
finally {
try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return result;
}

}

来源:http://www.cnblogs.com/xyabk/p/5776317.html

时间: 2024-10-10 06:45:05

微信公众号关注的相关文章

微信公众号关注来源统计查询谁会搞?

微信公众号目前分为服务号.订阅号1.服务号给企业和组织提供更强大的业务服务与用户管理能力,帮助企业快速实现全新的公众号服务平台.支持公众号关注来源统计查询,应用到渠道二维码功能,还有可以发送关键词绑定粉丝 2.订阅号订阅号为媒体和个人提供一种新的信息传播方式,构建与读者之间更好的沟通与管理模式.支持公众号关注来源统计查询,利用关键词被动回复,与粉丝建立联系,没有服务号可以通过扫码绑定粉丝功能,需要粉丝发送指定关键词到公众号实现关联 具体操作流程1.注册微号帮(已注册过请忽略这步) 2.登录后台,

生成微信公众号关注二维码

接口分析: 请求方式 : GET 请求url    : http://open.weixin.qq.com/qr/code/ 请求参数:username = {微信号(如下图所示)} 用例: <img src="http://open.weixin.qq.com/qr/code/?username=weixinyidu"/> 显示结果: 版权声明:本文为博主原创文章,未经博主允许不得转载.

JAVA微信公众号网页开发——获取公众号关注的所有用户

package com.weixin.sendmessage; import org.apache.commons.lang.StringUtils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.StatusLine; import org.apache.http.client.ClientProtocolException; import org.a

微信公众号用户信息认证机制

又有一段时间没动笔了,确实工作后忙碌起来了,年末了,给大家拜年了,抽了这个空档把最近做的一个东西分享分享. 微信公众号,相信不少人已经有接触,其开发分为许多种,本次主要说的是,通过微信认证后的公众号(下图,),使用Oauth网页接口来获取用户信息的流程. 一.基础准备 首先,明确需求:有一个应用服务器,希望通过某个链接(菜单)进入此应用,在应用服务器端可以获得访问者的一些信息. 微信是不会直接让你在用户在访问应用服务器时直接取到用户信息的,而需要通过他们的专门的认证服务器来操作.作为开发者,目前

推荐一款精仿微信公众号样式的管理系统

这是一个十分有趣微信公众号样式主题,它能够将你的需要的HTML页面变成一个微信公众号文章的样式,而你站点的所有内容都和微信公众号的文章样式展示在一个微信框中.同时还有返回功能等等. 十分适合做微信公众号展示的朋友. 当然稍加修改也能让它有其他的这是一个十分有趣微信公众号样式主题,它能够将你的需要的HTML页面变成一个微信公众号文章的样式,而你站点的所有内容都和微信公众号的文章样式展示在一个微信框中.同时还有返回功能等等. 产品功能 1.支持一键采集,只需输入公众号的文章链接,即可一键生成一篇百分

博客已经整体迁移到微信公众号:citrixeric,欢迎关注

各位新年好,我的本博客已经整体迁移到微信公众号上,欢迎大家关注. 可以搜索微信公众号citrixeric 并关注. 最近发表的文章有: PVS,对你爱,爱,爱不完 如何让一块普通机械硬盘产生高达20万的IOPS Receiver4.4 - 客户端硬件解码 - 大幅度提升3D显示效能 欢迎关注并留言交流,祝大家新春愉快,阖家欢乐!

C#微信公众号开发 -- (三)用户关注之后自动回复

通过了上一篇文章之后的微信开发者验证之后,我们就可以做微信公众号的代码开发了. 当我们点击关注某个公众号的时候,有时候会发现他会自动给我们回复一条消息,比如欢迎关注XXX公众号.这个功能其实是在点击关注的时候,用户触发了微信定义的事件,同时微信会返回给我们一个XML数据包,微信官方的解释如下: 推送XML数据包示例: <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName>&

我是怎么把“酒足饭饱”的微信公众号做到5000+人关注的。

项目结束一段时间了,和小伙伴闲着没事准备做一点有意思的事情,做什么呢?和下伙伴一商量我们就做看美女图片的微信公众号吧,反正我们平时没事就喜欢看美女图片,这个需求我想大多数男性朋友都是有的(后来发现我们的用户中20%+居然是女性,互联网真是个神奇的东西)而且微信公众号现在很火.说做就做.兴趣是最重要的推动力,我不说看美女图片是不是有意义的事情,至少我和我的小伙伴觉得是一件有意思的事情. 第一步:分工,我负责找图片,旺旺(我的小伙伴)负责研究微信公众号的接口和程序设计.原始图片怎么来呢?存储的问题怎

微信公众号开发(二)用户关注

微信公众号开发之用户关注   前面讲了基本配置,如果配置成功,那么现在就进入我们的微信公众号开发之旅吧! 这个旅程应该从哪里开始比较好呢?想想....首先说用户关注吧 !毕竟这是入口. 用户关注公众号可以通过三种方式: 1.扫公众号的二维码 2.搜索公众号的名称 3.扫带参数的二维码,但是第一个用户只能通过前面两种方式关注. 一.扫公众号的二维码 用户扫了二维码之后,点击关注,微信服务器会向我们的服务器发送一串数据(对象形式): reqMap:{ FromUserName:xx, EventKe