| Total Complexity | 2 |
| Total Lines | 59 |
| Duplicated Lines | 0 % |
| Coverage | 29.4% |
| Changes | 0 | ||
| 1 | # -*- coding: utf-8 -*- |
||
| 2 | 10 | from __future__ import absolute_import, unicode_literals |
|
| 3 | 10 | from optionaldict import optionaldict |
|
| 4 | |||
| 5 | 10 | from wechatpy.client.api.base import BaseWeChatAPI |
|
| 6 | |||
| 7 | |||
| 8 | 10 | class WeChatSemantic(BaseWeChatAPI): |
|
| 9 | |||
| 10 | 10 | def search(self, |
|
| 11 | query, |
||
| 12 | category, |
||
| 13 | uid=None, |
||
| 14 | latitude=None, |
||
| 15 | longitude=None, |
||
| 16 | city=None, |
||
| 17 | region=None): |
||
| 18 | """ |
||
| 19 | 发送语义理解请求 |
||
| 20 | 详情请参考 |
||
| 21 | http://mp.weixin.qq.com/wiki/0/0ce78b3c9524811fee34aba3e33f3448.html |
||
| 22 | |||
| 23 | :param query: 输入文本串 |
||
| 24 | :param category: 需要使用的服务类型,多个可传入列表 |
||
| 25 | :param uid: 可选,用户唯一id(非开发者id),用户区分公众号下的不同用户(建议填入用户openid) |
||
| 26 | :param latitude: 可选,纬度坐标,与经度同时传入;与城市二选一传入 |
||
| 27 | :param longitude: 可选,经度坐标,与纬度同时传入;与城市二选一传入 |
||
| 28 | :param city: 可选,城市名称,与经纬度二选一传入 |
||
| 29 | :param region: 可选,区域名称,在城市存在的情况下可省;与经纬度二选一传入 |
||
| 30 | :return: 返回的 JSON 数据包 |
||
| 31 | |||
| 32 | 使用示例:: |
||
| 33 | |||
| 34 | from wechatpy import WeChatClient |
||
| 35 | |||
| 36 | client = WeChatClient('appid', 'secret') |
||
| 37 | res = client.semantic.search( |
||
| 38 | '查一下明天从北京到上海的南航机票', |
||
| 39 | 'flight,hotel', |
||
| 40 | city='北京' |
||
| 41 | ) |
||
| 42 | |||
| 43 | """ |
||
| 44 | if isinstance(category, (tuple, list)): |
||
| 45 | category = ','.join(category) |
||
| 46 | |||
| 47 | data = optionaldict() |
||
| 48 | data['query'] = query |
||
| 49 | data['category'] = category |
||
| 50 | data['uid'] = uid |
||
| 51 | data['latitude'] = latitude |
||
| 52 | data['longitude'] = longitude |
||
| 53 | data['city'] = city |
||
| 54 | data['region'] = region |
||
| 55 | data['appid'] = self._client.appid |
||
| 56 | return self._post( |
||
| 57 | url='https://api.weixin.qq.com/semantic/semproxy/search', |
||
| 58 | data=data |
||
| 59 | ) |
||
| 60 |