如何从 Steam 的 API GetTradeOffer 获取 trade_offer_state
How to get trade_offer_state from Steam's API GetTradeOffer
我有一个对象 trade
从 Steam 的 API GetTradeOffer 返回,其中包含以下内容:
tradeofferid=697052768, accountid_other=38044877, expiration_time=1443176120, trade_offer_state=7
如果我 console.log(trade)
我得到:
tradeofferid=697052768, accountid_other=38044877, expiration_time=1443176120, trade_offer_state=7
但是如果我这样做 console.log(trade.trade_offer_state)
我会得到 undefined
有人知道为什么吗?
编辑:
这是本节的完整标记:
function checkOffer(offer) {
offers.getOffer({
tradeOfferId: offer.trade_id.toString()
}, function(err, trade) {
if (err) {
throw err;
}
logger.info(trade);
if (trade.trade_offer_state == '7' || trade.trade_offer_state == '4' || trade.trade_offer_state == '5' || trade.trade_offer_state == '6' || trade.trade_offer_state == '9' || trade.trade_offer_state == '10') {
connection.query('UPDATE `trade_queue` SET `offer_sent` = 0 WHERE `id` = ' + "'" + offer.id + "'", function(err, rows, fields) {
if (err) {
throw err;
}
logger.info(rows[0]);
});
}
});
}
var trade = {
"tradeofferid": 697052768,
"accountid_other": 38044877,
"expiration_time": 1443176120,
"trade_offer_state": 7
};
console.log( trade.trade_offer_state ); // same as
console.log( trade["trade_offer_state"] ); // both return 7
当var trade = "tradeofferid=697052768, accountid_other=38044877, expiration_time=1443176120, trade_offer_state=7";
您可以添加这些行:
function(err, trade) {
eval.bind( this )( "var " + trade );
trade = {
"tradeofferid": tradeofferid,
"accountid_other": accountid_other,
"expiration_time": expiration_time,
"trade_offer_state": trade_offer_state
};
if (err) {
throw err;
}
logger.info(trade);
if (trade.trade_offer_state == '7' || trade.trade_offer_state == '4' || trade.trade_offer_state == '5' || trade.trade_offer_state == '6' || trade.trade_offer_state == '9' || trade.trade_offer_state == '10') {
connection.query('UPDATE `trade_queue` SET `offer_sent` = 0 WHERE `id` = ' + "'" + offer.id + "'", function(err, rows, fields) {
if (err) {
throw err;
}
logger.info(rows[0]);
});
}
}
或
function(err, trade) {
eval( trade );
if (err) {
throw err;
}
logger.info(trade);
if (trade_offer_state == '7' || trade_offer_state == '4' || trade_offer_state == '5' || trade_offer_state == '6' || trade_offer_state == '9' || trade_offer_state == '10') {
connection.query('UPDATE `trade_queue` SET `offer_sent` = 0 WHERE `id` = ' + "'" + offer.id + "'", function(err, rows, fields) {
if (err) {
throw err;
}
logger.info(rows[0]);
});
}
}
如果你的对象是:
var trade = {
"response": {
"offer": {
"tradeofferid": "697052768",
"accountid_other": 38044877,
"expiration_time": 1443176120,
"trade_offer_state": 7
}
}
}
然后您使用以下方法获得您的价值:
var val = trade.response.offer.trade_offer_state; // 7
我有一个对象 trade
从 Steam 的 API GetTradeOffer 返回,其中包含以下内容:
tradeofferid=697052768, accountid_other=38044877, expiration_time=1443176120, trade_offer_state=7
如果我 console.log(trade)
我得到:
tradeofferid=697052768, accountid_other=38044877, expiration_time=1443176120, trade_offer_state=7
但是如果我这样做 console.log(trade.trade_offer_state)
我会得到 undefined
有人知道为什么吗?
编辑:
这是本节的完整标记:
function checkOffer(offer) {
offers.getOffer({
tradeOfferId: offer.trade_id.toString()
}, function(err, trade) {
if (err) {
throw err;
}
logger.info(trade);
if (trade.trade_offer_state == '7' || trade.trade_offer_state == '4' || trade.trade_offer_state == '5' || trade.trade_offer_state == '6' || trade.trade_offer_state == '9' || trade.trade_offer_state == '10') {
connection.query('UPDATE `trade_queue` SET `offer_sent` = 0 WHERE `id` = ' + "'" + offer.id + "'", function(err, rows, fields) {
if (err) {
throw err;
}
logger.info(rows[0]);
});
}
});
}
var trade = {
"tradeofferid": 697052768,
"accountid_other": 38044877,
"expiration_time": 1443176120,
"trade_offer_state": 7
};
console.log( trade.trade_offer_state ); // same as
console.log( trade["trade_offer_state"] ); // both return 7
当var trade = "tradeofferid=697052768, accountid_other=38044877, expiration_time=1443176120, trade_offer_state=7";
您可以添加这些行:
function(err, trade) {
eval.bind( this )( "var " + trade );
trade = {
"tradeofferid": tradeofferid,
"accountid_other": accountid_other,
"expiration_time": expiration_time,
"trade_offer_state": trade_offer_state
};
if (err) {
throw err;
}
logger.info(trade);
if (trade.trade_offer_state == '7' || trade.trade_offer_state == '4' || trade.trade_offer_state == '5' || trade.trade_offer_state == '6' || trade.trade_offer_state == '9' || trade.trade_offer_state == '10') {
connection.query('UPDATE `trade_queue` SET `offer_sent` = 0 WHERE `id` = ' + "'" + offer.id + "'", function(err, rows, fields) {
if (err) {
throw err;
}
logger.info(rows[0]);
});
}
}
或
function(err, trade) {
eval( trade );
if (err) {
throw err;
}
logger.info(trade);
if (trade_offer_state == '7' || trade_offer_state == '4' || trade_offer_state == '5' || trade_offer_state == '6' || trade_offer_state == '9' || trade_offer_state == '10') {
connection.query('UPDATE `trade_queue` SET `offer_sent` = 0 WHERE `id` = ' + "'" + offer.id + "'", function(err, rows, fields) {
if (err) {
throw err;
}
logger.info(rows[0]);
});
}
}
如果你的对象是:
var trade = {
"response": {
"offer": {
"tradeofferid": "697052768",
"accountid_other": 38044877,
"expiration_time": 1443176120,
"trade_offer_state": 7
}
}
}
然后您使用以下方法获得您的价值:
var val = trade.response.offer.trade_offer_state; // 7