Tag: rest

用户obj与Instagram API的问题

我创build了一个Instagram开发者帐户,并获得了client_secret和client_id,我成功地对自己的用户(myusername)进行了身份validation,并收到了access_token。 当我尝试使用此端点https://api.instagram.com/v1/users/search?q=[USERNAME]&access_token=[ACCESS TOKEN] 对于我使用“myusername”进行身份validation的用户,它将返回一个用户obj,但对于除此以外的任何其他用户名,我只会得到: {"meta":{"code":200},"data":[]} 我的问题是,如果我有一个Instagram ID列表。 有没有办法获得这些用户的公共数据? 我需要为每个这些用户得到一个类似于这样的对象: {"username":"someusername","bio":"","website":"","profile_picture":"https://scontent.cdninstagram.com/hphotos-xpt1/t51.2885-19/119054229_960211434022564_1442328159_a.jpg","full_name":"Robert Some Last Name","counts":{"media":12,"followed_by":13,"follows":350},"id":"23237xxxxx"} 任何帮助将非常感激。 最好,

问题与蓝鸟和请求得到rest回应

我使用'请求'模块来请求以下代码的rest服务: var request = require('request'); request.get('http://localhost:8190/api/1.0/product/012345', { auth: { user: 'toto', pass: 'totopass'} }, function(error,response,body) { console.log(body); }); 它的工作:)但我必须确保该调用是同步的,所以我想使用一个承诺。 我写了下面的代码: var Promise = require('bluebird'); var request = Promise.promisifyAll(require('request')); request.getAsync('http://localhost:8190/api/1.0/product/012345', { auth: { user: 'toto', pass: 'totopass'} }).then(function(error,response,body) { console.log(body); }); 但它失败了,我看到“未定义”是控制台。

数据没有从node.js保存在MongoDB中

我想使用node.js和mongodb创build其余的api我input所有的细节,并试图将其存储在mongodb数据库中。 // call the packages we need var express = require('express'); var bodyParser = require('body-parser'); var app = express(); var morgan = require('morgan'); // configure app app.use(morgan('dev')); // log requests to the console // configure body parser app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); var port = process.env.PORT || 8080; // set our port var mongoose = […]

使用令牌保护REST API的标准方式是什么?

这是我想要做的: 我有使用REST API提供数据的服务器,但是我只希望我的移动客户端(APP)能够访问它。 我想使用一个类似的系统,用户可以创build一个电子邮件/密码login。之后,用户可以使用API​​访问某些数据。 OAuth2是正确的使用? 或者我只是尝试创build我自己的协议,并为用户生成一个令牌。 并让用户在所有API请求上附加一个令牌。 (这是我困惑的地方,我可以使用OAuth吗?或者甚至是需要的?如果不是,有一个标准的HTTP方式来做到这一点?我也想使用刷新令牌,但我不知道如果我应该创build我自己的方法。

TypeError:Router.use()需要中间件function

我正在使用express开发一个REST API。 当我尝试运行我的应用程序时,出现此错误: TypeError: Router.use() requires middleware function but got a Object at Function.use (/Users/……/Desktop/NodeProjects/MyWebsite/node_modules/express/lib/router/index.js:458:13) at EventEmitter.<anonymous> (/Users/……./Desktop/NodeProjects/MyWebsite/node_modules/express/lib/application.js:219:21) at Array.forEach (native) at EventEmitter.use (/Users/………/Desktop/NodeProjects/MyWebsite/node_modules/express/lib/application.js:216:7) at Object.<anonymous> (/Users/…………./Desktop/NodeProjects/MyWebsite/app.js:32:5) at Module._compile (module.js:398:26) at Object.Module._extensions..js (module.js:405:10) at Module.load (module.js:344:32) at Function.Module._load (module.js:301:12) at Function.Module.runMain (module.js:430:10) 以下是我的代码: app.js代码 var express = require('express'); var http = require('http'); var path = […]

Android Volley:POST请求 – NodeJS REST API中的req.body为空

我知道它被讨论了十亿次,而且我已经阅读了几个问题/答案,特别是这个问题似乎是一个很好的例子 。 所以现在我试图重新创build代码,并添加我的getParams()以及我的getHeaders() 。 尴尬我得到一个HTTP状态代码400: E/Volley: [303] BasicNetwork.performRequest: Unexpected response code 400 for http://10.0.2.2:3000/classes 因为我已经创build了REST API,所以我可以看到这个状态码400来自哪里,如果req.body不包含mAtt, mDatum, mRID, mVon那么我的req.body响应。 所以现在我知道我的POST请求是不正确的工作,即使我设置我的getParams()以及我的getHeaders() … 现在,我的猜测是,我设置参数,但我提取req.body.mAtt, req.body.mDatum , req.body.mRID, req.body.mVon ,这将解释为什么我的NodeJS返回状态代码400.如果我提取了req.query.mAtt我可能会回来一些东西? 是否有某种方法需要我重写,实际设置身体而不是查询参数? 这是我的POST请求的样子: JsonObjectRequest JOPR = new JsonObjectRequest(Request.Method.POST, myAcitveLessonPOSTUrl, null, new Response.Listener<JSONObject>(){ @Override public void onResponse(JSONObject response) { try { VolleyLog.v("Response:%n %s", response.toString(4)); } catch (JSONException e) { e.printStackTrace(); […]

我如何加快MongoDB中的这个MongoDB查询?

我有一个树形的模式,指定一个父母的集合,和一个孩子的集合。 孩子的集合可能会有数以百万计的文档 – 每个文档都包含less量的数据,并且对其所属的父类的引用存储为string(也许是我的第一个错误)。 父母的collections要小得多,但可能还有数以万计,随着时间的推移会慢慢增长。 一般来说,单亲可能只有10个孩子,或多达5万(可能更多,但不太可能)。 一个单独的子文档可能看起来像这样: { _id: ObjectId("507f191e810c19729de860ea"), info: "Here's some info", timestamp: 1234567890.0, colour: "Orange", sequence: 1000, parent: "12a4567b909c7654d212e45f" } 其相应的父logging(位于单独的集合中)可能如下所示: { _id: ObjectId("12a4567b909c7654d212e45f") info: "Blah", timestamp: 1234567890.0 } 我在mongoose(其中包含请求中的父ID)查询如下所示: /* GET all children with the specified parent ID */ module.exports.childrenFromParent = function(req, res) { parentID = req.params.parentID; childModel.find({ "parentid": parentID }).sort({"sequence": […]

如何查看谷歌驱动器API的文件和文件夹?

我创build了一个谷歌项目,并设置所有我需要使用谷歌驱动器API与JWT crementials。 它不需要任何auth2authentication,因为它是服务器 – 服务器通信,用户不参与进程。 这工作正常,但为什么它不使用我的帐户驱动器? 如果我创build一个文件夹或文件,我不能在谷歌驱动器中看到它,所以这是使用不同的存储,如果是这样,我有办法看到我的所有文件和文件夹像一个正常的谷歌驱动器帐户? 我正在使用nodeJs,到目前为止这工作: var google = require('googleapis'); var drive = google.drive('v3'); var config = require('../config/config'); var jwtClient = new google.auth.JWT(config.google.drive.client_email, null, config.google.drive.private_key, ['https://www.googleapis.com/auth/drive'], null); jwtClient.authorize(function(err, tokens) { if (err) { console.log(err); return; } // Make an authorized request to list Drive files. //drive.files.create({ // auth: jwtClient, // resource: { // […]

Node.js使用json和bigint属性来restapi

我对node.js非常陌生,而且我在一个restAPI中工作,在这个API中,我有一个令人讨厌的问题,就是我无法把头包裹起来。 这是问题:api通过POST接收一个json对象。 在这个json对象中有一些属性是bigint。 让我给你一个这些对象的例子: { "items": [ { "appid": 730, "classid": "2222", "id": 99, "instanceid": "instanceID", "market_name": "Market name" }, { "appid": 730, "classid": "2222", "id": 99, "instanceid": "instanceID", "market_name": "Market name" } ], "message": "Mensagem de teste", "user": 76561197960275584 } 在服务器端,用户属性返回76561197960275580 。 这是一个JS四舍五入的问题,我试图用许多软件包(bignumber.js,json-bigint等)总共解决了5个解决scheme,但都没有为我工作。 我只是不能使用它们,因为当json对象命中服务器时,它的int属性已经被舍入了。 让我在这里放一块我的节点代码。 var express = require('express'); var bodyParser = require('body-parser'); var […]

如何从$$状态对象获取数据

$ scope.packgs总是作为一个$$状态对象结束,但如果我控制台响应它是正确的数组对象,我期待着,我做错了什么? 我的控制器 routerApp.controller('PortalController', ['$scope', '$state', 'UserService', 'PackageService', function($scope, $state, UserService, PackageService) { $scope.isLoggedIn = UserService.isLoggedIn; $scope.currentUser = UserService.currentUser; $scope.logOut = UserService.logOut; $scope.packgs = PackageService.get($scope.currentUser()).success(function(response){ return response; }); /*if($scope.packgs === null){ $scope.errorMessage = "You are not tracking any packages, add some to your portal!"; }*/ console.log($scope.packgs); }]); 我的工厂 packages.get = function(info){ return $http.get('/api/packages?owner='+info).success(function(data){ packages.data = […]