java调用微信发消息
时间: 2023-09-14 11:15:58 浏览: 93
要调用微信发送消息,可以使用微信开放平台提供的API接口。以下是使用Java调用微信API发送消息的基本步骤:
1.注册微信开发者账号,并创建自己的应用程序,获取应用程序的AppID和AppSecret。
2.通过Java代码获取微信的Access Token,使用Access Token可以调用微信API。
3.构造消息内容,包括消息类型、接收者、内容等信息。
4.使用Java的HttpURLConnection或HttpClient等工具发送POST请求,将消息发送给微信API。
5.解析微信API返回的结果,判断消息是否发送成功。
以下是Java代码示例,用于发送文本消息:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class WeChatAPIUtil {
// 获取Access Token的URL
private static final String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
// 发送消息的URL
private static final String SEND_MESSAGE_URL = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN";
/**
* 获取Access Token
* @param appId 应用程序的AppID
* @param appSecret 应用程序的AppSecret
* @return Access Token
*/
public static String getAccessToken(String appId, String appSecret) {
String accessToken = null;
String url = ACCESS_TOKEN_URL.replace("APPID", appId).replace("APPSECRET", appSecret);
try {
URL accessTokenUrl = new URL(url);
HttpURLConnection connection = (HttpURLConnection) accessTokenUrl.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);
connection.connect();
InputStream inputStream = connection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder responseBuilder = new StringBuilder();
String line = null;
while ((line = bufferedReader.readLine()) != null) {
responseBuilder.append(line);
}
String response = responseBuilder.toString();
accessToken = response.substring(response.indexOf("access_token") + 15, response.indexOf(",", response.indexOf("access_token")) - 1);
} catch (IOException e) {
e.printStackTrace();
}
return accessToken;
}
/**
* 发送消息
* @param accessToken Access Token
* @param openId 接收者的OpenID
* @param content 消息内容
* @return 是否发送成功
*/
public static boolean sendMessage(String accessToken, String openId, String content) {
boolean result = false;
String url = SEND_MESSAGE_URL.replace("ACCESS_TOKEN", accessToken);
String message = "{\"touser\":\"" + openId + "\",\"msgtype\":\"text\",\"text\":{\"content\":\"" + content + "\"}}";
try {
URL sendMessageUrl = new URL(url);
HttpURLConnection connection = (HttpURLConnection) sendMessageUrl.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setUseCaches(false);
connection.setRequestProperty("Content-Type", "application/json;charset=utf-8");
connection.connect();
OutputStream outputStream = connection.getOutputStream();
outputStream.write(message.getBytes("UTF-8"));
outputStream.flush();
outputStream.close();
InputStream inputStream = connection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder responseBuilder = new StringBuilder();
String line = null;
while ((line = bufferedReader.readLine()) != null) {
responseBuilder.append(line);
}
String response = responseBuilder.toString();
if (response.indexOf("errcode") == -1) {
result = true;
}
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
}
```
使用示例:
```java
public class Test {
public static void main(String[] args) {
// 公众号的AppID和AppSecret
String appId = "your app id";
String appSecret = "your app secret";
// 接收者的OpenID
String openId = "receiver's open id";
// 获取Access Token
String accessToken = WeChatAPIUtil.getAccessToken(appId, appSecret);
// 发送消息
boolean result = WeChatAPIUtil.sendMessage(accessToken, openId, "Hello, World!");
// 判断是否发送成功
if (result) {
System.out.println("消息发送成功!");
} else {
System.out.println("消息发送失败!");
}
}
}
```
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)