一、获取数据
大众点评推出国内首个 O2O 开发者平台——“大众点评开发者平台”,开发者应用可访问大众点评平台上的本地商户信息、商户点评、优惠及团购等内容。
通过大众点评 API,开发者的相关应用可以根据用户的实时需求,访问大众点评平台上的本地商户信息、商户点评、优惠及团购等内容。未来,他们还将开放商户预订、电子会员卡等服务,与开发者探索更多合作的可能性。
开发者平台申请地址 http://developer.dianping.com/
开发者申请使用大众点评API需要经过三个步骤:
第一步,注册开发者。
第二步,注册成功后即可获取App key,并拥有使用测试数据的权限,请参考《开发者协议》和《审核规范》进行应用开发。
第三步,在应用管理台提交应用审核,大众点评工作人员审核通过后,App key升级正式使用权限,同时自动切换为正式数据。
二、程序开发
目前大众点评主要有以下接口
这些接口都可以在微信公众平台上对接起来。
这里对其唯一的开发难点讲解如下:
API请求签名
概述
大众点评API需要通过签名来访问,签名的过程是将请求参数串以及APP密钥根据一定签名算法生成的签名值,作为新的请求参数从而提高访问过程中的防篡改性。签名值的生成详见下面的描述。
URL签名生成规则
所有大众点评API的有效访问URL包括以下三个部分:
1. 资源访问路径,如/v1/deal/find_deals;
2. 请求参数:即API对应所需的参数名和参数值param=value,多个请求参数间用&连接
如deal_id=1-85462&appkey=00000;
3. 签名串,由签名算法生成
签名算法如下:
1. 对除appkey以外的所有请求参数进行字典升序排列;
define('APPKEY','XXXXXXXX'); define('SECRET','XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'); define('URL', 'http://api.dianping.com/v1/business/find_businesses'); $params = array('format'=>'json','city'=>'上海','latitude'=>'31.2204200000392','longitude'=>'121.41163000018','radius'=>'1000','offset_type'=>'1','sort'=>'7','has_deal'=>'1','has_coupon'=>'1','category'=>'美食','region'=>'长宁区','limit'=>'20','keyword'=>'泰国菜'); ksort($params);
2. 将以上排序后的参数表进行字符串连接,如key1value1key2value2key3value3...keyNvalueN;
$codes = APPKEY; $queryString = ''; while (list($key, $val) = each($params)){ $codes .=($key.$val); $queryString .=('&'.$key.'='.urlencode($val));} $codes .=SECRET;
3. 将app key作为前缀,将app secret作为后缀,对该字符串进行SHA-1计算,并转换成16进制编码;
4. 转换为全大写形式后即获得签名串
$sign = strtoupper(sha1($codes));
5. 签名串获得后,将其作为sign参数附加到对应的URL中,即可正常访问API。
$url= URL . '?appkey='.APPKEY.'&sign='.$sign.$queryString; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);curl_setopt($curl, CURLOPT_ENCODING, 'UTF-8'); $data = json_decode(curl_exec($curl), true); curl_close($curl);
三、效果演示
优惠搜索
商户搜索
团购搜索
打开团购中的链接后