gpt4 book ai didi

javascript - 在 Twitter API 中使用 since_id 和 max_id

转载 作者:搜寻专家 更新时间:2023-11-01 05:06:50 25 4
gpt4 key购买 nike

我希望我想得太多了,并且有一个明显的解决方案。

来自 API(获取状态/user_timeline)

max_id - Returns results with an ID less than (that is, older than) or equal to the specified ID.

“或等于” 表示它将包含带有我作为 max_id 参数发送的 ID 的推文。

--

我的问题是:如果我存储我最早的推文的 ID(来自之前的请求),我如何从这个 ID 中减去 1 以排除它在我的下一个请求中返回?

显而易见的解决方案是执行类似 '&max_id='+lastID-1 的操作,但 Twitter ID 对于此类数学运算来说太大了,并且 javascript 对结果进行了四舍五入。

有关雪花更新的详细信息: https://dev.twitter.com/docs/twitter-ids-json-and-snowflake

可能的解决方案:

有人提到我可以使用 BigInteger Javascript 库:http://silentmatt.com/biginteger/ ,但在我看来,这对于诸如此类的小任务来说是多余的。

我是否必须对字符串 (id_str) 使用递归并将其递增或递减 1?我讨厌对诸如本应有效的小细节使用 hack。

--

如果您遇到过这个问题,请分享您的解决方案。

谢谢!

最佳答案

我遇到了同样的问题,最后通过从最后一位数字减去 1 来解决它,然后考虑我们通过递归从 0 减去 1 的情况。

function decrementHugeNumberBy1(n) {
// make sure s is a string, as we can't do math on numbers over a certain size
n = n.toString();
var allButLast = n.substr(0, n.length - 1);
var lastNumber = n.substr(n.length - 1);

if (lastNumber === "0") {
return decrementHugeNumberBy1(allButLast) + "9";
}
else {
var finalResult = allButLast + (parseInt(lastNumber, 10) - 1).toString();
return trimLeft(finalResult, "0");
}
}

function trimLeft(s, c) {
var i = 0;
while (i < s.length && s[i] === c) {
i++;
}

return s.substring(i);
}

关于javascript - 在 Twitter API 中使用 since_id 和 max_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9717488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com