饿了么平台API接入实战

作者: 风行者1024 | 来源:发表于2018-03-18 21:14 被阅读65次

大家好,本文介绍对接饿了么API的全过程,希望给其他人一点入门参考,少走弯路。

1) 总的流程

  1. 注册账号:开发者账号
  2. 创建应用:饿了么平台上的应用
  3. 获取token:商户授权给应用,允许应用访问商户在饿了么平台上的资源
  4. 访问api:饿了么提供各种api供使用,建议用SDK写代码

2) 注册账号

  1. 访问网址 https://open.shop.ele.me/openapi 注册开发者账号
  2. 注册完账号后,需要提交企业材料进行【资质认证】,认证通过后才能访问接口

注册环节没什么好多说的,只要把材料规范的提交上去就可以了,一般一天就会通过审核

3) 创建应用

  1. 在等待审核的时候,可以创建一个【应用】,我们先关注【沙箱环境】就可以了,其他的可以先不看。(我创建的是【企业应用】)


  2. 点开沙箱环境,这几个参数都要用的


什么是沙箱环境?答:就是测试环境,随便怎么搞都可以的。

4) 获取token

  1. 获取token这个事情是要写代码并部署到服务器上后才能获取到的。只是在本地搞是搞不了的。(需要准备一个线上服务器)
  2. 获取的步骤如下:
    • 先了解一下开发平台提供的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;
    }

这里面的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("f8764e056d5ef9a599aeebb5796895");
        token.setTokenType("Bearer");
        token.setExpires(86400);  //沙箱环境的token,有效期是一天
        token.setRefreshToken("2b370d43eba2115308625f11785dc0");

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();
        }
    }

结果:


6) 总结

因小编能力有限,加上文档中心有些内容介绍的稍微简单了点,整个过程中,token的获取是我花时间研究最多的地方。

在实际产品开发中,token的有效管理也是很重要的。

对key、secret、code、token、callback_url、店铺ID、店铺账号密码等概念要搞的清楚。

注意:
要装PC版的商家平台,从里面打开我的店铺(直接浏览器版打开好像是打不开的,提示餐厅不存在)

相关文章

  • 饿了么平台API接入实战

    大家好,本文介绍对接饿了么API的全过程,希望给其他人一点入门参考,少走弯路。 1) 总的流程 注册账号:开发者账...

  • 接入猫超、盒马的饿了么正在摆脱“外卖”标签

    饿了么“身边经济”再获助力。 据媒体报道,继盒马鲜生接入饿了么配送服务后,天猫超市也将正式接入饿了么的配送服务,涉...

  • Zabbix API 使用

    用于调用Zabbix Api接入平台展示监控数据 一:接口概述(用于调用Zabbix Api接入平台展示监控数据)...

  • 天猫伸出援手,饿了么将成阿里新零售关键一环?

    11月5日,天猫宣布,天猫超市一小时达已接入饿了么配送。据悉,天猫超市一小时达接入饿了么配送后首批已覆盖北京、上海...

  • 《说说饿了么平台》

    文/端木家达 在我家小区的附近万达商贸城内有一家饭馆,叫相聚融合餐厅,那里面菜味偏辣,属湘菜,但很有特色,我一般都...

  • 圈内见闻 | 黑社会气质的外卖平台

    315央妈报道了饿了么平台上的外卖黑作坊,重新把外卖平台的乱象拉到了舆论中心。新闻这样写道: 在“饿了么”网站上,...

  • 对接饿了么平台总结

    前言:好久没写过笔记了,感觉上次写笔记已经是上个世纪(嘿嘿~);最近工作中要对接饿了么的平台,从饿了么平台抓取数据...

  • 饿了么生鲜开放平台全面开启…

    饿了么新战略:建立全新的生鲜开放平台 口碑饿了么宣布建立全新的生鲜开放平台, 通过数字化、供应链、配送、流量、金融...

  • 饿了么,饿了......

    饿了么?多么温情的一句问候,不仅仅是问候,确实也让无数人足不出户就能喂饱肚子,不管你在城市的哪个角落,只要一个电话...

  • iOS开发集锦之 2017.04.06(Swift 算法实战之路

    1. Swift 算法实战之路:排序 作者: 故胤道长描述:基本概念; 排序实战 2. 饿了么移动基础设施建设 作...

网友评论

  • __y:您好,请问您做饿了么的消息处理的时候是用他提供的sdk的那个demo吗?
  • 风行者1024:走的路多了,到哪里都会是熟路

本文标题:饿了么平台API接入实战

本文链接:https://www.haomeiwen.com/subject/yakyqftx.html