新增上传图文消息内的图片接口

This commit is contained in:
jinyu 2016-01-26 20:16:34 +08:00
parent d506a0f7ba
commit c4bf06d372
3 changed files with 38 additions and 1 deletions

View File

@ -625,4 +625,8 @@
+ weixin4j-base:新增MemoryTokenStorager(内存保存token)类 + weixin4j-base:新增MemoryTokenStorager(内存保存token)类
+ weixin4j-base:TokenStorager类新增evict和clear接口 + weixin4j-base:TokenStorager类新增evict和clear接口
* 2016-01-26
+ weixin4j-qy:新增上传图文消息内的图片接口

View File

@ -29,6 +29,7 @@ import com.foxinmy.weixin4j.http.HttpRequest;
import com.foxinmy.weixin4j.http.HttpResponse; import com.foxinmy.weixin4j.http.HttpResponse;
import com.foxinmy.weixin4j.http.apache.ByteArrayBody; import com.foxinmy.weixin4j.http.apache.ByteArrayBody;
import com.foxinmy.weixin4j.http.apache.FormBodyPart; import com.foxinmy.weixin4j.http.apache.FormBodyPart;
import com.foxinmy.weixin4j.http.apache.InputStreamBody;
import com.foxinmy.weixin4j.http.weixin.JsonResult; import com.foxinmy.weixin4j.http.weixin.JsonResult;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse; import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Consts; import com.foxinmy.weixin4j.model.Consts;
@ -73,6 +74,36 @@ public class MediaApi extends QyApi {
this.tokenHolder = tokenHolder; this.tokenHolder = tokenHolder;
} }
/**
* 上传图文消息内的图片:用于上传图片到企业号服务端接口返回图片url请注意该url仅可用于图文消息的发送
* 且每个企业每天最多只能上传100张图片
*
* @param is
* 图片数据
* @param fileName
* 文件名
* @see <a
* href="http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%8A%E4%BC%A0%E5%9B%BE%E6%96%87%E6%B6%88%E6%81%AF%E5%86%85%E7%9A%84%E5%9B%BE%E7%89%87">上传图文消息内的图片</a>
* @return 图片url
* @throws WeixinException
*/
public String uploadImage(InputStream is, String fileName)
throws WeixinException {
if (StringUtil.isBlank(fileName)) {
fileName = ObjectId.get().toHexString();
}
if (StringUtil.isBlank(FileUtil.getFileExtension(fileName))) {
fileName = String.format("%s.jpg", fileName);
}
String media_uploadimg_uri = getRequestUri("media_uploadimg_uri");
Token token = tokenHolder.getToken();
WeixinResponse response = weixinExecutor.post(String.format(
media_uploadimg_uri, token.getAccessToken()),
new FormBodyPart("media", new InputStreamBody(is,
ContentType.IMAGE_JPG.getMimeType(), fileName)));
return response.getAsJson().getString("url");
}
/** /**
* 上传媒体文件:分别有图片image语音voice视频video普通文件(file) * 上传媒体文件:分别有图片image语音voice视频video普通文件(file)
* <p> * <p>

View File

@ -47,6 +47,8 @@ tag_add_user_uri={api_base_url}/tag/addtagusers?access_token=%s
tag_delete_user_uri={api_base_url}/tag/deltagusers?access_token=%s tag_delete_user_uri={api_base_url}/tag/deltagusers?access_token=%s
# \u9080\u8bf7\u6210\u5458\u5173\u6ce8 # \u9080\u8bf7\u6210\u5458\u5173\u6ce8
invite_user_uri={api_base_url}/invite/send?access_token=%s invite_user_uri={api_base_url}/invite/send?access_token=%s
# \u4e0a\u4f20\u56fe\u6587\u6d88\u606f\u4e2d\u7684\u56fe\u7247\u7d20\u6750
media_uploadimg_uri={api_base_url}/media/uploadimg?access_token=%s
# \u4e0a\u4f20\u5a92\u4f53\u6587\u4ef6 # \u4e0a\u4f20\u5a92\u4f53\u6587\u4ef6
media_upload_uri={api_base_url}/media/upload?access_token=%s&type=%s media_upload_uri={api_base_url}/media/upload?access_token=%s&type=%s
# \u4e0b\u8f7d\u5a92\u4f53\u6587\u4ef6 # \u4e0b\u8f7d\u5a92\u4f53\u6587\u4ef6