饿了么平台API接入实战 |
您所在的位置:网站首页 › 饿了么开发者平台 › 饿了么平台API接入实战 |
大家好,本文介绍对接饿了么API的全过程,希望给其他人一点入门参考,少走弯路。 1) 总的流程 注册账号:开发者账号 创建应用:饿了么平台上的应用 获取token:商户授权给应用,允许应用访问商户在饿了么平台上的资源 访问api:饿了么提供各种api供使用,建议用SDK写代码 2) 注册账号 访问网址 https://open.shop.ele.me/openapi 注册开发者账号 注册完账号后,需要提交企业材料进行【资质认证】,认证通过后才能访问接口注册环节没什么好多说的,只要把材料规范的提交上去就可以了,一般一天就会通过审核 ![]() 在等待审核的时候,可以创建一个【应用】,我们先关注【沙箱环境】就可以了,其他的可以先不看。(我创建的是【企业应用】) ![]() 点开沙箱环境,这几个参数都要用的 ![]() 什么是沙箱环境?答:就是测试环境,随便怎么搞都可以的。 4) 获取token 获取token这个事情是要写代码并部署到服务器上后才能获取到的。只是在本地搞是搞不了的。(需要准备一个线上服务器) 获取的步骤如下:先了解一下开发平台提供的SDK(后面访问商铺信息也建议用sdk写代码,方便)https://open.shop.ele.me/openapi/documents/sdk 我们用最直接的方式:通过url打开网页(饿了么提供的)、商户填入账号密码、授权成功后跳转到callback_url(就是在应用里配置的【回调地址URL】,后面还会附上2个新的参数code和state),跳转到的callback_url里包括参数code,是生成token的最重要参数。 授权网页的url怎么来?appKey参数就是前面说的key public static String getAuthUrl(boolean isSandbox, String appKey, String appSecret, String callbackUrl) { Config config = new Config(isSandbox, appKey, appSecret); OAuthClient client = new OAuthClient(config); String scope = "all"; //接口要求填 all String state = "xyz"; //任意值 String authUrl = client.getAuthUrl(callbackUrl, scope, state); return authUrl; }饿了么的授权网页长啥样? ![]() 授权成功后的callbackUrl 比如你应用里配置的是 http://42.18.18.18/eleme/callback/getTokenByCode 授权成功后跳转到的url就是 http://42.18.18.18/eleme/callback/getTokenByCode?code=ae9522071bacb7b371d940c4348a78d5&state=xyz 这里面的code很重要,有了code,我们就可以生成token了。 生成token的代码很简单,callbackUrl就是应用里配置的【回调地址URL】 public static Token getToken(boolean isSandbox, String appKey, String appSecret, String callbackUrl, String code) { Config config = new Config(isSandbox, appKey, appSecret); OAuthClient client = new OAuthClient(config); return client.getTokenByCode(code, callbackUrl); }好了,到这里,最重要的token搞定了。有了token,我们就可以自由访问API了。(token的有效管理,本文不做介绍) token对象长啥样? Token token = new Token(); token.setAccessToken("f8764e056d5ef9a9aee79bb5796895"); token.setTokenType("Bearer"); token.setExpires(86400); //沙箱环境的token,有效期是一天 token.setRefreshToken("2b370d4315eba2115325f11785dc0"); 5) 获取API通过饿了么提供的SDK访问API 例如获取商户的店名和地址 public static void getShopInfo(boolean isSandbox, String appKey, String appSecret, Token token, int shopId) { try { Config config = new Config(isSandbox, appKey, appSecret); ShopService shopService = new ShopService(config, token); OShop shop = shopService.getShop(shopId); log.info("店名:"+shop.getName()+", 地址:"+shop.getAddressText()); } catch(Exception e) { e.printStackTrace(); } }结果: ![]() 因小编能力有限,加上文档中心有些内容介绍的稍微简单了点,整个过程中,token的获取是我花时间研究最多的地方。 在实际产品开发中,token的有效管理也是很重要的。 对key、secret、code、token、callback_url、店铺ID、店铺账号密码等概念要搞的清楚。 注意: 要装PC版的商家平台,从里面打开我的店铺(直接浏览器版打开好像是打不开的,提示餐厅不存在) ![]() |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |