大家好,本文介绍对接饿了么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";  //接口要求填 allString 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();}}
复制代码

结果:

6) 总结

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

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

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

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

饿了么平台API接入实战相关推荐

  1. 恒生LIGHT云金融交易测试平台,支持股票、融资融券、股票期权、基金、期货等多市场,提供免费的实盘行情和便捷的API接入,满足多金融业务品种的高仿真实训环境,进行策略实盘回测!

    金融交易测试平台,是恒生LIGHT云为开发者提供的一套支持股票.融资融券.股票期权.基金.期货等多市场,多金融业务品种的高仿真实训环境. 开发者通过开放的接口接入金融交易测试平台,一方面可以验证自身产 ...

  2. 1688平台API接口接入文档和参数说明调用示例

    1688平台提供了开放API接口,可以方便地接入程序中,获取商品信息.订单信息以及进行交易等操作.接入1688平台API需要进行以下步骤: 1. 创建应用:在1688开放平台上注册开发者账号,创建应用 ...

  3. 微信公众平台开发,API接入与推送事件(1)

    博客好久没有更新了,今天说说微信开发.微信开发的好多初学者都会又这样的迷惑,微信开发到底是什么?其实微信开发本质我和我们的网站开发没有太大的区别.我们常说的微信开发也就是公众号开,微信公众号分为三个类 ...

  4. 数位云开发者平台:室内定位api接入文档

    API文档 1 概述 数位云场景识别 API v3接口用于查询用户的场景位置.标签等 POI数据,用户可以使用 Java.Golang.C#. C++.Python 等开发语言发送请求且接收 JSON ...

  5. 《微信公众平台应用开发实战(第2版)》一导读

    前 言 为什么要写这本书 截至本书完成时,微信已有超过6亿的用户,公众平台给了我们接触这6亿用户的机会.公众平台对于我们来说是一个全新的平台,任何人都可以在公众平台上注册一个账号并进行自己的探索,这意 ...

  6. 微信公众平台应用开发实战

    微信公众平台应用开发实战 微信营销 ISBN 9787111438618 作者 钟志勇 含税价 59.0元 税后 51.3元 增值税 7.7元 卓越价 40.7元(满49元免运费) 有货 出版社 机械 ...

  7. 阿里:饿了么质量体系搭建实战(含福利)

    "质量与效率"一直是阿里关注的焦点.相对于软件开发,软件测试起步较晚,缺乏拥有专业知识的人才.即便是大学开设的软件工程专业,针对软件测试的介绍也只是涉及少量的概念和设计测试用例的方 ...

  8. 《ASP.NET Core 与 RESTful API 开发实战》-- (第10章)-- 读书笔记

    第 10 章 部署 10.1 部署到 IIS ASP.NET Core 应用程序支持部署到 IIS 中,之后它将作为应用程序的反向代理服务器和负载均衡器,向应用程序中转传入的 HTTP 请求 默认情况 ...

  9. 【WEB API项目实战干货系列】- API访问客户端(WebApiClient适用于MVC/WebForms/WinForm)(四)

    目前最新的代码已经通过Sqlite + NHibernate + Autofac满足了我们基本的Demo需求. 按照既定的要求,我们的API会提供给众多的客户端使用, 这些客户端可以是各种Web站点, ...

最新文章

  1. Linux系统自动更新时间
  2. 如何设计网站导航更利于SEO优化?
  3. [保护模式]PAE模式
  4. zabbix-web前端配置
  5. android 十八 蓝牙及Wi-Fi
  6. python修改指定行,python读取文件的指定行并修改
  7. 前端安全之token
  8. [推荐]大量 Blazor 学习资源(二)
  9. linux shell 子进程结束,关于linux:如何终止以shell = True启动的python子进程
  10. 反射使用 非空表向空表赋值
  11. css3实现进度条的模拟
  12. oracle 负载均衡连接方式常用SQL语句备忘录
  13. PHP操作Trait类
  14. 计算机网络工程师干嘛的,什么是网络工程师?网络工程师是做什么的?
  15. 腾讯云安装mysql_详解腾讯云CentOS7.0使用yum安装mysql及使用遇到的问题
  16. Mysql 循环更新
  17. CRC循环冗余码及其详细计算
  18. AR互动百科,“沉浸式”科普在身边!【5月活动特辑】
  19. unity3d培训_001
  20. 互联网个人空间即将出现重大变化

热门文章

  1. Stimulsoft Reports.PHP 2022.4.3 Crack
  2. 【一】反转字符串中的元音字母
  3. Java教程:Java常用开发工具有哪些?
  4. 数学:确定性的丧失---第四章 第一场灾难:真理的丧失
  5. A Tale from the Dark Side of The Moon
  6. python往excel特定单元格中写入文本_将值写入python中pandas中工作表中的特定单元格...
  7. 2021.8.30-9.6 人工智能行业每周技术动态
  8. 亚马逊封号潮暂停,部分账号开始解封,亚马逊防关联到底要怎么做
  9. FO3 辐射3审校心得——初翻太过分了,真该抓去喂乌龟(翻译)
  10. 角谷猜想python代码_查看“Python-2020-fall”的源代码