1

meteor コードから osTicket api にアクセスしようとしていますが、これまでのコードは次のとおりです。

if (Meteor.isServer) {
Meteor.methods({
    osTicket: function() {
        this.unblock();
        return HTTP.post("http://www.xxxxxxxx.com/uploads/api/tickets.json","X-API-Key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx",

            {
                data: {
                    "alert": true,
                    "autorespond": true,
                    "source": "API",
                    "name": "Angry",
                    "email": "api@osticket.com",
                    "phone": "3185558634X123",
                    "subject": "Testing API",
                    "ip": "172.22.78.114",
                    "message": "MESSAGE HERE",
                    "attachments": [{
                        "file.txt": "data:text/plain;charset=utf-8,content"
                    }, {
                        "image.png": "data:image/png;base64,R0lGODdhMAA..."
                    }, ]
                },
            },
            function(error, results) {
                if (results) {
                    console.log(results);
                } else {
                    console.log(error)
                }
            }
        );
    }
});
}

if (Meteor.isClient) {

    Template.api.events({
        'click #submitQuery': function() {

            Meteor.call("osTicket");

        }
    })

}

API から 200 ステータスといくつかの HTML コードを取得しています。これは、接続が成功したことを意味しますが、API を使用してコードからチケットを作成できません。

それで、私は何を間違っていますか?API に接続するための構文は正しいですか?

詳細については、 https: //github.com/osTicket/osTicket-1.7/blob/develop/setup/doc/api/tickets.md を参照してください。

ありがとう。

4

1 に答える 1

1

ファイバー/将来のnpm パッケージを使用します。

meteorhacks:npmパッケージ meteorを追加

meteor add http
meteor add meteorhacks:npm

packages.json を作成してファイバーを追加する

{
  "fibers": "1.0.7",
}

見る:

if (Meteor.isServer) {
  var Future = Meteor.npmRequire('fibers/future'); 

  Meteor.methods({
    osTicket: function() {

    // Create our future instance.
      var future = new Future();
          data = {
              "alert": true,
              "autorespond": true,
              "source": "API",
              "name": "Angry",
              "email": "api@osticket.com",
              "phone": "3185558634X123",
              "subject": "Testing API",
              "ip": "172.22.78.114",
              "message": "MESSAGE HERE",
              "attachments": [
                { "file.txt": "data:text/plain;charset=utf-8,content" }, 
                { "image.png": "data:image/png;base64,R0lGODdhMAA..." }, 
              ]
          };

      return HTTP.post("http://www.xxxxxxxx.com/uploads/api/tickets.json","X-API-Key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx", { data:  data },
        function(error, response) {
          if (error) {
            return future.return(error);
          } else {
            future.return( response );
          }
      });

      return future.wait();
    }
  });
}

if (Meteor.isClient) {
  Template.api.events({
    'click #submitQuery': function() {
      Meteor.call("osTicket", function(error, response) {

        console.log(response);
      });
    }
  })
}
于 2015-11-16T09:05:27.247 に答える