|
|
@@ -3,9 +3,11 @@ package chanjarster.weixin.api; |
|
|
|
import java.io.File; |
|
|
|
import java.io.IOException; |
|
|
|
import java.io.InputStream; |
|
|
|
import java.io.StringReader; |
|
|
|
import java.security.MessageDigest; |
|
|
|
import java.text.MessageFormat; |
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.List; |
|
|
|
import java.util.UUID; |
|
|
|
import java.util.concurrent.atomic.AtomicBoolean; |
|
|
|
|
|
|
@@ -36,6 +38,12 @@ import chanjarster.weixin.util.http.MediaUploadRequestExecutor; |
|
|
|
import chanjarster.weixin.util.http.RequestExecutor; |
|
|
|
import chanjarster.weixin.util.http.SimpleGetRequestExecutor; |
|
|
|
import chanjarster.weixin.util.http.SimplePostRequestExecutor; |
|
|
|
import chanjarster.weixin.util.json.WxGsonBuilder; |
|
|
|
|
|
|
|
import com.google.gson.JsonElement; |
|
|
|
import com.google.gson.internal.Streams; |
|
|
|
import com.google.gson.reflect.TypeToken; |
|
|
|
import com.google.gson.stream.JsonReader; |
|
|
|
|
|
|
|
public class WxServiceImpl implements WxService { |
|
|
|
|
|
|
@@ -190,6 +198,17 @@ public class WxServiceImpl implements WxService { |
|
|
|
String responseContent = execute(new SimplePostRequestExecutor(), url, MessageFormat.format("'{'\"group\":'{'\"name\":\"{0}\"}}", name)); |
|
|
|
return WxGroup.fromJson(responseContent); |
|
|
|
} |
|
|
|
|
|
|
|
public List<WxGroup> groupGet() throws WxErrorException { |
|
|
|
String url = "https://api.weixin.qq.com/cgi-bin/groups/get"; |
|
|
|
String responseContent = execute(new SimpleGetRequestExecutor(), url, null); |
|
|
|
/* |
|
|
|
* 操蛋的微信API,创建时返回的是 { group : { id : ..., name : ...} } |
|
|
|
* 查询时返回的是 { groups : [ { id : ..., name : ..., count : ... }, ... ] } |
|
|
|
*/ |
|
|
|
JsonElement tmpJsonElement = Streams.parse(new JsonReader(new StringReader(responseContent))); |
|
|
|
return WxGsonBuilder.INSTANCE.create().fromJson(tmpJsonElement.getAsJsonObject().get("groups"), new TypeToken<List<WxGroup>>(){}.getType()); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 向微信端发送请求,在这里执行的策略是当发生access_token过期时才去刷新,然后重新执行请求,而不是全局定时请求 |
|
|
|