SmartAPI.cs 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*--------------------------------------------------------------------------
  2. * SmartAPI.cs
  3. *Auth:deepleo
  4. * Date:2015.01.15
  5. * Email:2586662969@qq.com
  6. * Website:http://www.weixinsdk.net
  7. *--------------------------------------------------------------------------*/
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Net.Http;
  13. using Codeplex.Data;
  14. namespace LYFZ.Weixin.SDK
  15. {
  16. /// <summary>
  17. /// 智能接口
  18. /// http://mp.weixin.qq.com/wiki/index.php?title=%E8%AF%AD%E4%B9%89%E7%90%86%E8%A7%A3
  19. /// </summary>
  20. public class SmartAPI
  21. {
  22. /// <summary>
  23. /// 语义理解
  24. /// </summary>
  25. /// <param name="access_token">根据appid和appsecret获取到的token</param>
  26. /// <param name="query">输入文本串</param>
  27. /// <param name="category">需要使用的服务类型,多个用“,”隔开,不能为空</param>
  28. /// <param name="latitude">纬度坐标,与经度同时传入;与城市二选一传入</param>
  29. /// <param name="longitude">经度坐标,与纬度同时传入;与城市二选一传入</param>
  30. /// <param name="city">城市名称,与经纬度二选一传入</param>
  31. /// <param name="region">区域名称,在城市存在的情况下可省;与经纬度二选一传入</param>
  32. /// <param name="appid">公众号唯一标识,用于区分公众号开发者</param>
  33. /// <param name="uid">用户唯一id(非开发者id),用户区分公众号下的不同用户(建议填入用户openid),如果为空,则无法使用上下文理解功能。appid和uid同时存在的情况下,才可以使用上下文理解功能。</param>
  34. /// <returns></returns>
  35. public static dynamic Semantic(string access_token, string query, string category, string latitude, string longitude, string city, string region, string appid, string uid)
  36. {
  37. var builder = new StringBuilder();
  38. builder
  39. .Append("{")
  40. .Append('"' + "query" + '"' + ":").Append(query).Append(",")
  41. .Append('"' + "category" + '"' + ":").Append(category).Append(",")
  42. .Append('"' + "latitude" + '"' + ":").Append(latitude).Append(",")
  43. .Append('"' + "longitude" + '"' + ":").Append(longitude).Append(",")
  44. .Append('"' + "city" + '"' + ":").Append(city).Append(",")
  45. .Append('"' + "region" + '"' + ":").Append(region).Append(",")
  46. .Append('"' + "appid" + '"' + ":").Append(appid).Append(",")
  47. .Append('"' + "uid" + '"' + ":").Append(uid).Append(",")
  48. .Append("}");
  49. var client = new HttpClient();
  50. var result = client.PostAsync(string.Format("https://api.weixin.qq.com/semantic/semproxy/search?access_token={0}", access_token), new StringContent(builder.ToString())).Result;
  51. return DynamicJson.Parse(result.Content.ReadAsStringAsync().Result);
  52. }
  53. }
  54. }