0

現在、新しい Box View API のノード実装を構築しています。ドキュメントをアップロードしてセッションを取得するたびに 202 が返されます。ただし、curl コールを実行すると、202 が返されません。他にこの問題が発生している人はいますか?

これが私のEmberの実装です:

export default Ember.View.extend({
  document: null,
  documentID: null,
  session: null,
  sessionID: null,

  getDocument: function() {
    var self = this;

    return Ember.$.ajax({ 
      url: 'http://localhost:3000/doc', 
      type: 'POST',
      contentType: 'application/json',
      dataType: 'json',
      data: JSON.stringify({ "docURL": this.textField.value })
    }).then(function(response){
      self.set('document', response);
      self.set('documentID', response.document_id);
    });
  },

  getSession: function() {
    var self = this;

    return Ember.$.ajax({
      url: 'http://localhost:3000/sess/',
      type: 'POST',
      contentType: 'application/json',
      data: JSON.stringify({ "docID": this.get('documentID') })
    }).
    then(function(response) {
      self.set('session', response);
      self.set('sessionID', response.session_id);
    });
  }.observes('documentID'),

  actions: {
    upload: function() {
      this.getDocument();
    }
  }
});

ここに私のノードの実装があります:

var https = require('https');
var requestCount = 0;

exports.doc = function(req, res) {
  var docURL = req.body.docURL;
  var httpReq;
  var opts = {
    hostname: 'view-api.box.com',
    path: '/1/documents',
    method: 'POST',
    headers: { 'Content-Type': 'application/json', 'Authorization': 'Token <my token>' }
  };

  res.header('Access-Control-Allow-Origin', '*');

  httpReq = https.request(opts, function(preq, pres) {
    var output = '';

    preq.on('data', function(chunk) {
      output += chunk;
    });

    preq.on('end', function() {
      output = JSON.parse(output);

      output.document_id = output.id;
      delete output.id;

      res.json(output);
    });
  });

  httpReq.write(JSON.stringify({ "url": docURL }));
  httpReq.end();
};

exports.sess = getSession;

function getSession(req, res) {
  var docID = req.body.docID;
  var httpReq;
  var opts = {
    hostname: 'view-api.box.com',
    path: '/1/sessions',
    method: 'POST',
    headers: { 'Content-Type': 'application/json', 'Authorization': 'Token <my token>' }
  };

  res.header('Access-Control-Allow-Origin', '*');

  httpReq = https.request(opts, function(preq, pres) {
    var output = '';

    if(preq.statusCode === 202) {
      setTimeout(function() {
        console.log('Retrying Request :: Count(' + requestCount + ')');
        if (requestCount >= 3) {
          res.json({ 'error': "Retry Again.", 'time': preq.headers['retry-after'] });
          return;
        }

        getSession(req, res);
        requestCount += 1;
      }, 2000);
      return;
    }

    preq.on('data', function(chunk) {
      output += chunk;
    });

    preq.on('end', function() {
      console.log('Successful Request!');
      requestCount = 0;
      output = JSON.parse(output);

      output.session_id = output.id;
      delete output.id;

      res.json(output);
    });
  });

  httpReq.write(JSON.stringify({ "document_id": docID, "duration": 60 }));
  httpReq.end();
}

しかし、今このエラーが発生しています。アップロードされたドキュメントを削除するのに役立つ UI はありますか?

{
  "message": "You have exceeded your document upload rate-limit.",
  "type": "error",
  "request_id": "49f8b480b304496987b8cf21f5850c90"
}
4

1 に答える 1