Twitter開發(fā)者賬號(hào)申請(qǐng)被拒——Twitter IDs(snowflake)

來(lái)源:簡(jiǎn)書
作者:Dedededi
時(shí)間:2020-06-21
5902
本系列是對(duì)推特開發(fā)者文檔進(jìn)行的翻譯,以便幫助開發(fā)人員使用API接口。


本系列是對(duì)推特開發(fā)者文檔進(jìn)行的翻譯,以便幫助開發(fā)人員使用API接口,難免有些地方存在不足,還請(qǐng)諒解。

關(guān)于如何獲得一個(gè)推特開發(fā)者賬號(hào)請(qǐng)看此貼。

什么是Snowflake?

Snowflake是一種服務(wù),用于為Twitter中的對(duì)象(Tweets、Direct Messages、Users、Collections、list等)生成唯一的id。這些id是唯一的64位無(wú)符號(hào)整數(shù),它們基于時(shí)間,而不是順序的。完整的ID由時(shí)間戳、工作編號(hào)和序列號(hào)組成。在使用JSON使用API時(shí),始終使用字段id_str而不是id是很重要的。這是由于使用JSON的Javascript和其他語(yǔ)言計(jì)算大整數(shù)的方式所致。如果您遇到一個(gè)不符合id和id_str的場(chǎng)景,那是因?yàn)槟沫h(huán)境已經(jīng)解析了id整數(shù),并在過(guò)程中修改了數(shù)字。請(qǐng)閱讀下面的內(nèi)容,了解更多關(guān)于Twitter如何生成id的信息。

問(wèn)題

一些編程語(yǔ)言(如Javascript)不能支持大于53位的數(shù)字。這可以通過(guò)在瀏覽器控制臺(tái)中運(yùn)行類似于:(90071992547409921).toString()的命令或通過(guò)JSON解析器試運(yùn)行以下JSON片段。

{"id":10765432100123456789,"id_str":"10765432100123456789"}

在受影響的JSON解析器中,ID將不會(huì)成功轉(zhuǎn)換,并且會(huì)失去準(zhǔn)確性。在某些解析器中,甚至可能會(huì)有例外。

解決方案

為了允許Javascript和JSON解析器讀取ID,Twitter對(duì)象在使用JSON響應(yīng)時(shí)包含任何ID的字符串版本。因此,Twitter API中的Status、User、Direct Message、Saved Search和其他id在JSON響應(yīng)中既作為整數(shù)又作為字符串返回。

例如,status對(duì)象包含一個(gè)id和一個(gè)id_str。status對(duì)象的以下JSON表示顯示了每個(gè)數(shù)據(jù)的id字段的兩個(gè)版本。

21615413-0a291b86f30ef1ca.jpg

21615413-268cc9151d19572e.jpg

可以看到既有id也有id_str

開發(fā)人員需要做什么

首先要做的是嘗試使用解釋器對(duì)上面的JSON代碼片段進(jìn)行解碼。觀察輸出以確認(rèn)ID沒(méi)有丟失準(zhǔn)確性。

·如果您的代碼成功地轉(zhuǎn)換了ID而沒(méi)有失去準(zhǔn)確性,您可以接受,但是應(yīng)該考慮盡快轉(zhuǎn)換為IDs的str版本。

·如果代碼失去準(zhǔn)確性,請(qǐng)將代碼轉(zhuǎn)換為使用str版本。如果不這樣做,代碼將無(wú)法可靠地與Twitter API交互。

·在某些解釋器中,JSON在讀取ID值時(shí)可能拋出異常。如果在解釋器中發(fā)生這種情況,您將需要“預(yù)分析”數(shù)據(jù),刪除或用它們的str版本替換ID參數(shù)。

總結(jié)

1.如果您使用Javascript開發(fā),請(qǐng)知道您將必須更新代碼以讀取字符串版本而不是整數(shù)版本。

2.如果使用JSON解碼器,請(qǐng)驗(yàn)證上面的示例JSON是否在不引發(fā)異常的情況下解碼。如果拋出異常,則需要預(yù)分析數(shù)據(jù)。

原文鏈接:點(diǎn)擊前往 >
版權(quán)說(shuō)明:本文內(nèi)容來(lái)自于簡(jiǎn)書,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家