package com.jfinal.weixin.sdk.api.shakearound; import com.jfinal.kit.StrKit; import com.jfinal.weixin.sdk.api.AccessTokenApi; import com.jfinal.weixin.sdk.api.ApiResult; import com.jfinal.weixin.sdk.utils.HttpUtils; import com.jfinal.weixin.sdk.utils.JsonUtils; import java.util.HashMap; import java.util.Map; public class ShakeAroundPageApi { private static String pageAddUrl = "https://api.weixin.qq.com/shakearound/page/add?access_token="; /** * 新增摇一摇出来的页面信息,包括在摇一摇页面出现的主标题、副标题、图片和点击进去的超链接。 * 其中,图片必须为用素材管理接口上传至微信侧服务器后返回的链接。 * * @param title 在摇一摇页面展示的主标题,不超过6个汉字或12个英文字母 * @param pageUrl 页面地址 * @param description 在摇一摇页面展示的副标题,不超过7个汉字或14个英文字母 * @param iconUrl 在摇一摇页面展示的图片。图片需先上传至微信侧服务器,用“素材管理-上传图片素材”接口上传图片,返回的图片URL再配置在此处 * @return ApiResult */ public static ApiResult addPage(String title, String pageUrl, String description, String iconUrl) { return addPage(title, pageUrl, description, null, iconUrl); } /** * 新增摇一摇出来的页面信息,包括在摇一摇页面出现的主标题、副标题、图片和点击进去的超链接。 * 其中,图片必须为用素材管理接口上传至微信侧服务器后返回的链接。 * * @param title 在摇一摇页面展示的主标题,不超过6个汉字或12个英文字母 * @param pageUrl 页面地址 * @param description 在摇一摇页面展示的副标题,不超过7个汉字或14个英文字母 * @param iconUrl 在摇一摇页面展示的图片。图片需先上传至微信侧服务器,用“素材管理-上传图片素材”接口上传图片,返回的图片URL再配置在此处 * @param comment 页面的备注信息,不超过15个汉字或30个英文字母 * @return ApiResult */ public static ApiResult addPage(String title, String pageUrl, String description, String comment, String iconUrl) { String url = pageAddUrl + AccessTokenApi.getAccessTokenStr(); Map data = new HashMap(); data.put("title", title); data.put("description", description); data.put("page_url", pageUrl); if (StrKit.notBlank(comment)) { data.put("comment", comment); } data.put("icon_url", iconUrl); String jsonResult = HttpUtils.post(url, JsonUtils.toJson(data)); return new ApiResult(jsonResult); } private static String pageUpdateUrl = "https://api.weixin.qq.com/shakearound/page/update?access_token="; /** * 新增摇一摇出来的页面信息,包括在摇一摇页面出现的主标题、副标题、图片和点击进去的超链接。 * 其中,图片必须为用素材管理接口上传至微信侧服务器后返回的链接。 * * @param pageId 摇周边页面唯一ID * @param title 在摇一摇页面展示的主标题,不超过6个汉字或12个英文字母 * @param pageUrl 页面地址 * @param description 在摇一摇页面展示的副标题,不超过7个汉字或14个英文字母 * @param iconUrl 在摇一摇页面展示的图片。图片需先上传至微信侧服务器,用“素材管理-上传图片素材”接口上传图片,返回的图片URL再配置在此处 * @return ApiResult */ public static ApiResult updatePage(int pageId, String title, String pageUrl, String description, String iconUrl) { return updatePage(pageId, title, pageUrl, description, null, iconUrl); } /** * 新增摇一摇出来的页面信息,包括在摇一摇页面出现的主标题、副标题、图片和点击进去的超链接。 * 其中,图片必须为用素材管理接口上传至微信侧服务器后返回的链接。 * * @param pageId 摇周边页面唯一ID * @param title 在摇一摇页面展示的主标题,不超过6个汉字或12个英文字母 * @param pageUrl 页面地址 * @param description 在摇一摇页面展示的副标题,不超过7个汉字或14个英文字母 * @param iconUrl 在摇一摇页面展示的图片。图片需先上传至微信侧服务器,用“素材管理-上传图片素材”接口上传图片,返回的图片URL再配置在此处 * @param comment 页面的备注信息,不超过15个汉字或30个英文字母 * @return ApiResult */ public static ApiResult updatePage(int pageId, String title, String pageUrl, String description, String comment, String iconUrl) { String url = pageUpdateUrl + AccessTokenApi.getAccessTokenStr(); Map data = new HashMap(); data.put("page_id", pageId); data.put("title", title); data.put("description", description); data.put("page_url", pageUrl); if (StrKit.notBlank(comment)) { data.put("comment", comment); } data.put("icon_url", iconUrl); String jsonResult = HttpUtils.post(url, JsonUtils.toJson(data)); return new ApiResult(jsonResult); } private static String pageSearchUrl = "https://api.weixin.qq.com/shakearound/page/search?access_token="; /** * 查询已有的页面,包括在摇一摇页面出现的主标题、副标题、图片和点击进去的超链接。 * 页面ID查询 * * @param pageIds 定页面ID查询 * @return ApiResult */ public static ApiResult searchByIds(int... pageIds) { String url = pageSearchUrl + AccessTokenApi.getAccessTokenStr(); Map data = new HashMap(); data.put("type", 1); data.put("page_ids", pageIds); String jsonResult = HttpUtils.post(url, JsonUtils.toJson(data)); return new ApiResult(jsonResult); } /** * 查询已有的页面,包括在摇一摇页面出现的主标题、副标题、图片和点击进去的超链接。 * 批量拉取页面列表。 * @param begin 页面列表的起始索引值; * @param count 待查询的页面数量,不能超过50个; * @return ApiResult */ public static ApiResult searchPage(int begin, int count) { String url = pageSearchUrl + AccessTokenApi.getAccessTokenStr(); if(begin < 0) begin = 0; if(count > 50) count = 50; if(count < 1) count = 1; Map data = new HashMap(); data.put("type", 2); data.put("begin", begin); data.put("count", count); String jsonResult = HttpUtils.post(url, JsonUtils.toJson(data)); return new ApiResult(jsonResult); } private static String pageDeleteUrl = "https://api.weixin.qq.com/shakearound/page/delete?access_token="; /** * 删除已有的页面,包括在摇一摇页面出现的主标题、副标题、图片和点击进去的超链接。 * 只有页面与设备没有关联关系时,才可被删除。 * * @param pageId 指定页面的id * @return ApiResult */ public static ApiResult deletePage(int pageId) { String url = pageDeleteUrl + AccessTokenApi.getAccessTokenStr(); Map data = new HashMap(); data.put("page_id", pageId); String jsonResult = HttpUtils.post(url, JsonUtils.toJson(data)); return new ApiResult(jsonResult); } }