云网站服务器_国内数据云存储_移动云数据库服务器主机-搜集站云

中间件_金蝶k3数据库_排行榜

小七 141 0

大家星期五快乐!希望你的一周和我的一样令人兴奋(和疲惫)。本周APIFriday我们将查看Uber的API,了解用户详细信息和乘车请求。Uber不提供在JS应用程序中使用API的直接文档,因此我在尝试将其添加到我的UI5应用程序中时学到了很多。我喜欢的陷阱包含在我的一些轶事中,所以请继续读下去!

首先,让我们看看Uber开发者文档。正如你几乎马上就会注意到的,没有(又名一点)关于网络的指导!我使用了curlapi文档,并做了一些修改,使其能够在AJAX中工作,我将在接下来指出这一点。有一个合作伙伴PHP库/示例可用,但这不是我今天使用的语言。我们将尽最大努力遵循并改编Curl中的Uber-Ride-Request教程。

首先,您需要在您的Uber帐户上注册一个开发者帐户(如果您已经拥有Uber应用程序,您可以使用该帐户)。在您的帐户中,您将能够获得服务器令牌和个人令牌。在应用程序中,可以使用个人令牌代替OAuth2。更多关于OAuth的危险…所以注册并记下您的令牌,因为我们需要它们来开始。

在您的Web IDE中,继续创建一个新的SAPUI5应用程序。我在Fiori Tiles中找到了一个新的love,所以让我们在视图中创建一个Tile容器。打开主视图文件,在标记之间,添加一个平铺容器,我们可以将Uber Ride类型绑定到该容器。

我们将很快在控制器中创建一个绑定到平铺容器聚合的rideTypes模型。这意味着瓷砖的数量将动态创建的基础上,在您的地区的优步乘坐类型的数量…酷!

进入控制器!打开主控制器文件和onInit函数。init函数将为视图设置一些模型,然后启动uberapi调用链。如果你浏览一下Uber的骑乘请求教程,你会发现有一系列(有点长)的呼叫。首先,你得到产品以获得产品id,然后你得到产品的费用,然后你要求搭车(在他们的沙箱里!!),最后我们得到了骑乘的状态。所以我们开始吧!

让我们从getModel函数开始。定义一个不带参数的新函数getMe。在这个函数中,我们将执行一个AJAX调用来获取您的用户配置文件数据。uberapi中的/me方法是GET调用,云服务器,我们需要提供我们的个人令牌。一旦我们到达done回调,我们将把结果绑定到我们的概要文件模型,我们可以在视图中使用它来显示一些关于用户的数据。要将Curl调用更改为Ajax调用,-H属性将成为headers数组的一部分。在onInit函数中,注释掉此.getRideTypes()呼叫,北京大数据公司,您可以运行应用程序并检查控制台。如果调用成功,您将在控制台中看到数据。如果不是…那么我可能知道你的问题是什么。

如果你收到一条错误消息说你不能访问/me方法或访问被拒绝之类的,不要惊慌,因为它也发生在我身上。现在有个简单的解决办法。回到你的Uber开发者面板,点击授权标签。在"常规范围"下,您将找到一个概要文件范围。检查一下。如果您尝试保存,您将看到需要提供重定向url和隐私策略链接。您可以使用应用程序url的测试版本作为重定向,下面是SAP的隐私策略链接。

保存这些更改并重新运行应用程序后,错误将消失。

回到控制器中,让我们添加getRideTypes函数。这个Ajax调用将是对uberapi的/products方法的调用。/products方法与/me方法非常相似,但它确实需要一个经度和纬度,因为可用的产品在区域上是不同的。交换headers数组的-H参数,将type设置为GET,并将url设置为uberapi的/products方法。我们将结果绑定到在onInit函数中设置的rideTypes模型,该模型将填充视图中的平铺。

当您运行应用程序时,您将看到各种平铺。提供的坐标是针对旧金山的,那里有9种Uber乘坐类型。我的tile输出如下所示。

在我们的视图中,我们定义了一个函数名,用于在按下时为tile定义函数名。现在,我们会让媒体展示一个关于所选骑乘类型和估计成本的消息。我为起始位置和目的地设置了一些预设值,但您可以在UI中添加一个或2个输入字段,让用户输入这些值。请记住,如果他们提供了一个可读的文本地址,您需要对其进行地理编码以获得经纬度。

对于tilePress函数,我们将调用Uber API的/requests/estimate方法。这个方法从Curl转换到Javascript有点困难。同样,-H属性将在Ajax调用中传输到headers数组。因为我们将传递数据,所以这个调用的类型是POST。对于-d(或data)数组,我们需要将其转换为Ajax调用中的data参数。但是,/requests/estimate方法不接受数据数组中的JSON。您需要将包含坐标和产品id的JSON数据"字符串化"或转换为纯文本。我们可以通过找到与单击的瓷砖绑定的相关数据,从瓷砖冲压事件中获取产品id。

通过获取所选瓷砖的绑定上下文,消息Toast将显示所选骑乘类型的名称。此外,一旦我们得到结果,我们也可以使用估计的票价显示在消息中。