標籤:福士點評 android 團購 應用
這裡介紹的是福士點評的團購中的一個介面,就是所有團購資訊,其他的介面的實現是大同小異的。
首先,登入福士點評的開發平台->福士點評 。然後擷取到自己的應用的appkey和secret,這個是開發必備的。可以下載福士點評提供的demo->demo 。
擷取所有的團購資訊:
DZDPApiTool.java 福士點評提供的Api工具類(請求api -> requestApi這個方法)
public class DZDPApiTool {/** * 擷取請求字串 * * @param appKey * @param secret * @param paramMap * @return */ public static String getQueryString(String appKey, String secret, Map<String, String> paramMap) { String sign = sign(appKey, secret, paramMap); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("appkey=").append(appKey).append("&sign=").append(sign); for (Entry<String, String> entry : paramMap.entrySet()) { stringBuilder.append('&').append(entry.getKey()).append('=').append(entry.getValue()); } String queryString = stringBuilder.toString(); return queryString; } /** * 擷取請求字串,參數值進行UTF-8處理 * * @param appKey * @param secret * @param paramMap * @return */ public static String getUrlEncodedQueryString(String appKey, String secret, Map<String, String> paramMap) { String sign = sign(appKey, secret, paramMap); StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("appkey=").append(appKey).append("&sign=").append(sign); for (Entry<String, String> entry : paramMap.entrySet()) { try { stringBuilder.append('&').append(entry.getKey()).append('=').append(URLEncoder.encode(entry.getValue(), "UTF-8")); } catch (UnsupportedEncodingException e) { } } String queryString = stringBuilder.toString(); return queryString; } /** * 請求API * * @param apiUrl * @param appKey * @param secret * @param paramMap * @return */ public static String requestApi(String apiUrl, String appKey, String secret, Map<String, String> paramMap) { String queryString = getQueryString(appKey, secret, paramMap); StringBuffer response = new StringBuffer(); HttpClientParams httpConnectionParams = new HttpClientParams(); httpConnectionParams.setConnectionManagerTimeout(1000); HttpClient client = new HttpClient(httpConnectionParams); HttpMethod method = new GetMethod(apiUrl); try { if (queryString != null && !queryString.isEmpty()) { // Encode query string with UTF-8 String encodeQuery = URIUtil.encodeQuery(queryString, "UTF-8"); method.setQueryString(encodeQuery); } client.executeMethod(method); BufferedReader reader = new BufferedReader(new InputStreamReader(method.getResponseBodyAsStream(), "UTF-8")); String line = null; while ((line = reader.readLine()) != null) { response.append(line).append(System.getProperty("line.separator")); } reader.close(); } catch (URIException e) { } catch (IOException e) { } finally { method.releaseConnection(); } return response.toString(); } /** * 簽名 * * @param appKey * @param secret * @param paramMap * @return */ public static String sign(String appKey, String secret, Map<String, String> paramMap) { // 參數名排序 String[] keyArray = paramMap.keySet().toArray(new String[0]); Arrays.sort(keyArray); // 拼接參數 StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append(appKey); for (String key : keyArray) { stringBuilder.append(key).append(paramMap.get(key)); } stringBuilder.append(secret); String codes = stringBuilder.toString(); // SHA-1簽名 // For Android String sign = new String(Hex.encodeHex(DigestUtils.sha(codes))).toUpperCase(); return sign; }}然後調用介面
Map<String, String> paramMap = new HashMap<String, String>();paramMap.put("city", city);paramMap.put("limit", 1);paramMap.put("page", offset + "");paramMap.put("region", region);DZDPApiTool.requestApi(http://api.dianping.com/v1/deal/find_deals, appkey, sign, paramMap);參數:(引用福士點評)
- 必選參數
| 名稱 |
類型 |
說明 |
| appkey |
string |
App Key,應用的唯一標識 |
| sign |
string |
請求籤名,產生方式見《API請求籤名產生文檔》 |
| city |
string |
包含團購資訊的城市名稱,可選範圍見相關API返回結果 |
- 選擇性參數
| 名稱 |
類型 |
說明 |
| destination_city |
string |
指定目的地城市名稱,適用於“酒店”、“旅遊”等分類,可選範圍見相關API返回結果 |
| latitude |
float |
緯度座標,須與經度座標同時傳入 |
| longitude |
float |
經度座標,須與緯度座標同時傳入 |
| radius |
int |
搜尋半徑,單位為米,最小值1,最大值5000,如不傳入預設為1000 |
| region |
string |
包含團購資訊的城市地區名,可選範圍見相關API返回結果(不含返回結果中包括的城市名稱資訊) |
| category |
string |
包含團購資訊的分類名,支援多個category合并查詢,多個category用逗號分割。可選範圍見相關API返回結果 |
| is_local |
int |
根據是否是本地單來篩選返回的團購,1:是,0:不是 |
| keyword |
string |
關鍵詞,搜尋範圍包括商戶名、商品名、地址等 |
| sort |
int |
結果排序,1:預設,2:價格低優先,3:價格高優先,4:購買人數多優先,5:最新發行優先,6:即將結束優先,7:離經緯度座標距離近優先 |
| limit |
int |
每頁返回的團單結果條目數上限,最小值1,最大值40,如不傳入預設為20 |
| page |
int |
頁碼,如不傳入預設為1,即第一頁 |
| format |
string |
返回資料格式,可選值為json或xml,如不傳入,預設值為json |
Android 福士點評的接入