Tag: uber api

如何request-request_id-receipt-get?

我试图拿到收据,但我不能! 我已经在AUTHORIZATIONS中设置了“request_receipt”,而且没有任何变化。 我需要做些什么来获得收据? <script> var headers = { 'Accept-Language':'en_US', 'Content-Type':'application/json' }; function callback(error, response, body) { if(error){ console.log(error); }else if (response.statusCode == 200) { var jsonBody = JSON.parse(body); headers['Authorization'] = `Bearer ${jsonBody.access_token}`; getUserHistory(req,res); } } request.post(options, callback); }); function getUserHistory(req,res){ var options = { url: 'https://api.uber.com/v1.2/history', headers:headers }; request.get(options, (error, response, body) => { if(error){ […]

从App中的SSO获取access_token时对OAuth2请求的invalid_grant

我有一个与Uber API集成的iOS应用程序,我使用SSO来validation用户,然后在我的设备上本地保存accessToken&refreshToken。 然后,我打电话给我的服务器,使用javascript后台函数调用节点 – 超级( https://www.npmjs.com/package/node-uber )库来向Uber请求。 到目前为止,我试图用SSOlogin中的2个本地令牌来设置超级客户端,如下所示: var uber = new uberClient({ client_id: '…', client_secret: '…', server_token: '…', name: 'My App', sandbox: true, //optional access_token: accessToken, refresh_token: refreshToken }); 之后我想调用这个uber.requests.getEstimatesAsync端点: uber.requests.getEstimatesAsync({ "start_latitude": pickupLocation["lat"], "start_longitude": pickupLocation["lng"], "end_latitude": dropoffLocation["lat"], "end_longitude": dropoffLocation["lng"] }) .then(function(res) { console.log(JSON.stringify(res)); }) .error(function(err) { console.error(err); }); }) 虽然每次我得到一个“invalid_grant”错误400,而这样做。 我是否犯了一个错误的身份validation错误或设立Uber客户端错误? 是否有可能使用我的SSO accessToken&refreshToken然后在uber客户端,进行OAuth2authentication? 我认为访问和刷新令牌应该和Uber发回给SSO和OAuth2的一样。 […]

Uber API无效经度和纬度

我试图在input地址时在Node.JS中创build一个脚本,它告诉你在你所在的地方的产品。 但我得到[Error: Invalid latitude & longitude]我这样做与地理编码,但每次我运行相同或不同的地址的应用程序,我明白了。 这是代码 var Uber = require('node-uber'); var geocoderProvider = 'google'; var uber = new Uber({ client_id: 'KEY', client_secret: ' key', server_token: 'key', redirect_uri: 'uri', name: 'Uber product list' }); var httpAdapter = 'http'; var geocoder = require('node-geocoder')(geocoderProvider, httpAdapter); geocoder.geocode('Address', function(err, res) { console.log(res); var latitude = res[0]["latitude"] var longitude = […]

Uber webhook签名问题nodeJs(hmac)

我有一些NodeJS的问题和Uber Sandbox的WebHooktesting。 我能够收到正确的POST响应,但是安全检查(X-Uber-Signature)总是错误的。 module.exports = { myWebService: function(req, res) { const hmac = crypto.createHmac('sha256','<MYSECRET>'); var hash = hmac.update(JSON.stringify(req.body)).digest('hex'); //Those values are always different.. console.log("Constructed hash : " + hash +"\n"); console.log("Received hash : " + req.header('X-Uber-Signature') + "\n"); JSON.stringify(req.body)内容: {"event_id":"08db06df-559a-457a-ba92-3c8380bb7ec7","resource_href":"https://sandbox-api.uber.com/v1/requests/8f5cc257-cfdf-4654-9acd-085aae740107","meta":{"status":"arriving","rider_id":"8IMl8ulC-yJTqkbsq5g4HuyuYeRQ5b5aSsmLt2vpjl6H8Fk_JPz_5AZYj4ERi6M7MagmrJtPM7L_rAnHLgO0qLgGtpD8Lg32rnGTEUkWHAbPjDZIl0-X91PrrujPY_IYGA==","user_id":"ecb2e871-b768-4f76-bfa9-8bc253bced0e","resource_id":"8f5cc257-cfdf-4654-9acd-085aae740107"},"event_type":"all_trips.status_changed","event_time":1508163555} 我尝试了许多(很多)这个string转换,但没有任何工作,如果任何人有一个想法,将不胜感激..谢谢

Tchannel服务器代码不工作。 (Python和nodejs)

我刚开始学习Uber的Tchannel。 我试图从python和nodejs的tchannel文档运行代码。 在这两种情况下,我都无法将客户端连接到服务器。 这是我的代码看起来像nodejs,我从http://tchannel-node.readthedocs.org/en/latest/GUIDE/ : var TChannel = require('tchannel'); var myLocalIp = require('my-local-ip'); var rootChannel = TChannel(); rootChannel.listen(0,myLocalIp()); rootChannel.on('listening', function onListen() { console.log('got a server', rootChannel.address()); }); var TChannelThrift = rootChannel.TChannelAsThrift; var keyChan = rootChannel.makeSubChannel({ serviceName: process.env.USER || 'keyvalue' }); var fs = require('fs'); var keyThrift = TChannelThrift({ source: fs.readFileSync('./keyvalue.thrift', 'utf8') }); var ctx = […]

请求超大沙箱api不改变任何东西

我使用超级api向沙箱发出请求。 具体来说,我从这里使用节点超级库: https : //github.com/shernshiou/node-uber 当我尝试设置浪涌倍增器时,使用下面的代码片段: uber.products.setSurgeMultiplierByID('90475b1e-382e-437f-a50f-d9ac28c150c8', 2.2, function (err, res) { if (err) console.error("error" + err); else console.log("surge success" + res); }); 然后我提出要求: uber.requests.create({ "start_latitude": lat, "start_longitude": longitude, }, function (err, res) { if (err) console.error(err); else console.log(res); }); 我在回应中看到,冲击倍数仍然是1.0 我究竟做错了什么? 而且,超级沙箱是否应该在我的PUT请求到沙箱之间保持一个状态,而我的要求是超级用户? 它如何为我专门保存这个状态? 它是基于我的身份validation令牌吗? 谢谢!

如何validation超级webhook api?

优步文件说 此字段的值是webhook HTTP请求正文的hexHMAC签名,使用客户端密钥作为密钥,SHA256作为哈希函数。 但是HTTP请求体是什么? 我认为这是从webhook( https://developer.uber.com/docs/webhooks#section-example-post )收到的JSON正文。 如果是这样,那么如何在NodeJS中validation它作为HMAC的encryption模块不接受JSON [我尝试过JSONstring化,但它会生成一个不同的哈希]。 或者如何将JSON转换为缓冲区,因为这是下一个最佳select 如果不是,那我该用什么? [UPDATE1]用于任务的代码: app.post("/",function(req,res){ const crypto = require('crypto'); var input = res.body var str_input=JSON.stringify(input) const hmac = crypto.createHmac('sha256', '<CLIENT SECRET>'); hmac.update(str_input); console.log(hmac.digest('hex')); // print same as below console.log("e034ac7db29c3c0c10dfeced41a6cd850ed74c1c3c620863d47654cc7390359a") })

在Node.js中使用axios发布表单数据

我正在testingPostman上的Uber API,并且能够成功发送带有表单数据的请求。 当我尝试使用Node.js和axios库翻译这个请求时,我得到一个错误。 这是我的邮差请求的样子: 我得到的回应是: { "error": "invalid_client" } 以下是我在Node.js和axios中所做的: var axios = require("axios"); const config = { headers: { 'Content-Type': 'multipart/form-data' } }; axios.post('https://login.uber.com/oauth/v2/token', { client_id: '***', client_secret: '***', grant_type: 'authorization_code', redirect_uri: 'http://localhost:8080/', code: '***' }, config) .then(function(response) { console.log(response.data) }) .catch(function(error) { console.log(error) }) 当我这样做,我得到一个400响应。 我添加了'multipart/form-data'标题,因为我填写了邮递员请求中的表单数据。 没有头我得到相同的结果。 我期望得到我从邮差得到的相同的响应,有没有在我的configurationvariables在Node.js脚本错了吗? 任何帮助,将不胜感激!