Skip to content

Twitter开发者账号申请被拒——Twitter IDs(snowflake)

Twitter开发者账号申请被拒——Twitter IDs(snowflake)

本系列是对推特开发者文档进行的翻译,以便帮助开发人员使用API接口,难免有些地方存在不足,还请谅解。

关于如何获得一个推特开发者账号请看此贴。

什么是Snowflake?

Snowflake是一种服务,用于为Twitter中的对象(Tweets、Direct Messages、Users、Collections、list等)生成唯一的id。这些id是唯一的64位无符号整数,它们基于时间,而不是顺序的。完整的ID由时间戳、工作编号和序列号组成。在使用JSON使用API时,始终使用字段id_str而不是id是很重要的。这是由于使用JSON的Javascript和其他语言计算大整数的方式所致。如果您遇到一个不符合id和id_str的场景,那是因为您的环境已经解析了id整数,并在过程中修改了数字。请阅读下面的内容,了解更多关于Twitter如何生成id的信息。

问题

一些编程语言(如Javascript)不能支持大于53位的数字。这可以通过在浏览器控制台中运行类似于:(90071992547409921).toString()的命令或通过JSON解析器试运行以下JSON片段。

{“id”:10765432100123456789,”id_str”:”10765432100123456789″}

在受影响的JSON解析器中,ID将不会成功转换,并且会失去准确性。在某些解析器中,甚至可能会有例外。

解决方案

为了允许Javascript和JSON解析器读取ID,Twitter对象在使用JSON响应时包含任何ID的字符串版本。因此,Twitter API中的Status、User、Direct Message、Saved Search和其他id在JSON响应中既作为整数又作为字符串返回。

例如,status对象包含一个id和一个id_str。status对象的以下JSON表示显示了每个数据的id字段的两个版本。

可以看到既有id也有id_str

开发人员需要做什么

首先要做的是尝试使用解释器对上面的JSON代码片段进行解码。观察输出以确认ID没有丢失准确性。

·如果您的代码成功地转换了ID而没有失去准确性,您可以接受,但是应该考虑尽快转换为IDs的str版本。

·如果代码失去准确性,请将代码转换为使用str版本。如果不这样做,代码将无法可靠地与Twitter API交互。

·在某些解释器中,JSON在读取ID值时可能抛出异常。如果在解释器中发生这种情况,您将需要“预分析”数据,删除或用它们的str版本替换ID参数。

总结

1.如果您使用Javascript开发,请知道您将必须更新代码以读取字符串版本而不是整数版本。

2.如果使用JSON解码器,请验证上面的示例JSON是否在不引发异常的情况下解码。如果抛出异常,则需要预分析数据。

相关推荐: FCCID认证怎么查询

1、FCC ID查询网址 登陆查询网站https://fjallfoss.fcc.gov/oetcf/eas/reports/GenericSearch.cfm 页面进行操作。 2、FCC ID查询格式 在页面下显示“Grantee Code”一栏键入FCC …

    码刀科技(www.lekshop.cn)是国内知名企业级电商平台提供商,为企业级商家提供最佳的电商平台搭建(多种模式电商平台搭建:B2B/B2B2C/B2C/O2O/新零售/跨境等)、平台管理系统开发及互联网采购解决方案服务, 联系客服了解更多.

    电子商务网站建设的重要性和好处