在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    Telegram一款專注于速度和安全性的消息傳遞應(yīng)用程序

    Telegram一款專注于速度和安全性的消息傳遞應(yīng)用程序

    《開源精選》是我們分享Github、Gitee等開源社區(qū)中優(yōu)質(zhì)項(xiàng)目的欄目,包括技術(shù)、學(xué)習(xí)、實(shí)用與各種有趣的內(nèi)容。本期推薦的Telegram是一款專注于速度安全性消息傳遞應(yīng)用程序,它超快、簡(jiǎn)單且免費(fèi)。

    我們歡迎所有開發(fā)者使用我們的 API 和源代碼在我們的平臺(tái)上創(chuàng)建應(yīng)用程序。

    • 為您的應(yīng)用程序獲取您自己的 api_id。
    • 請(qǐng)不要為您的應(yīng)用使用 Telegram 名稱——或確保您的用戶明白它是非官方的。
    • 請(qǐng)不要使用我們的標(biāo)準(zhǔn)徽標(biāo)(藍(lán)色圓圈中的白紙平面)作為您應(yīng)用的徽標(biāo)。
    • 請(qǐng)閱讀我們的安全指南,并妥善保管您用戶的數(shù)據(jù)和隱私。
    • 請(qǐng)記住也發(fā)布您的代碼以遵守許可證。

    入門

    創(chuàng)建您的電報(bào)應(yīng)用程序

    我們歡迎所有開發(fā)者使用我們的API和源代碼在我們的平臺(tái)上免費(fèi)創(chuàng)建類似 Telegram 的消息應(yīng)用程序。

    獲取 api_id

    為了獲取API id并使用 Telegram API 開發(fā)您自己的應(yīng)用程序,您需要執(zhí)行以下操作:

    • 使用任何應(yīng)用程序注冊(cè) Telegram。
    • 登錄到您的 Telegram 核心:https ://my.telegram.org 。
    • 轉(zhuǎn)到“API 開發(fā)工具”并填寫表格。
    • 您將獲得基本地址以及用戶授權(quán)所需的api_id和api_hash參數(shù)。
    • 目前每個(gè)號(hào)碼只能有一個(gè) api_id 連接到它。

    我們將向您在此過(guò)程中使用的電話號(hào)碼發(fā)送重要的開發(fā)者通知,因此請(qǐng)使用連接到您的有效 Telegram 帳戶的最新號(hào)碼。

    使用 api_id

    在使用 MTProto Telegram API 之前,請(qǐng)注意所有 API 客戶端庫(kù)都受到嚴(yán)格監(jiān)控以防止濫用。

    如果您使用 Telegram API 進(jìn)行泛濫、發(fā)送垃圾郵件、偽造訂閱者和查看頻道計(jì)數(shù)器,您將被永久禁止。

    由于對(duì) Telegram API 的過(guò)度濫用,所有使用非官方 Telegram API 客戶端注冊(cè)或登錄的帳戶都會(huì)被自動(dòng)置于監(jiān)控之下,以避免違反服務(wù)條款。

    如果您沒(méi)有違反服務(wù)條款,但您 的帳戶在使用 API 后確實(shí)被禁止,請(qǐng)寫信至recovery@telegram.org ,說(shuō)明您打算如何使用 API,要求解除您的帳戶。請(qǐng)注意,電子郵件由人工檢查,因此將檢測(cè)并禁止自動(dòng)生成的電子郵件。

    使用 Telegram 的開源代碼

    歡迎大家使用我們的開源代碼。我們?cè)诖a中包含了一個(gè)示例 API id。此 API id 在服務(wù)器端受到限制,不適合發(fā)布給最終用戶的應(yīng)用程序 – 將其用于任何測(cè)試目的都會(huì)導(dǎo)致您的用戶出現(xiàn) API_ID_PUBLISHED_FLOOD 錯(cuò)誤。在發(fā)布應(yīng)用程序之前,您必須獲取自己的 API id 。

    用戶授權(quán)

    授權(quán)與客戶端的加密密鑰標(biāo)識(shí)符相關(guān)聯(lián):auth_key_id。授權(quán)后無(wú)需將其他參數(shù)傳遞給方法。

    發(fā)送驗(yàn)證碼

    示例實(shí)現(xiàn):用于 android 的電報(bào),tdlib。

    要顯示格式良好且經(jīng)過(guò)驗(yàn)證的電話號(hào)碼字段,可以使用help.getCountriesList方法獲取help.countriesList構(gòu)造函數(shù)。 然后按照此處所述使用help.countriesList配置。

    然后,使用auth.sendCode將包含授權(quán)碼的短信發(fā)送到用戶的手機(jī)。但是,如果使用注銷令牌,情況并非總是如此:

    注銷令牌

    在啟用 2FA 的先前授權(quán)會(huì)話上調(diào)用auth.logOutfuture_auth_token時(shí),服務(wù)器可能會(huì)返回 a ,它應(yīng)該存儲(chǔ)在本地?cái)?shù)據(jù)庫(kù)中。在任何時(shí)候,注銷令牌數(shù)據(jù)庫(kù)都應(yīng)包含最多 20 個(gè)令牌:在添加新令牌時(shí)驅(qū)逐舊令牌。調(diào)用auth.sendCode時(shí),應(yīng)將數(shù)據(jù)庫(kù)中存在的所有注銷令牌提供給codeSettings.logout_tokens.如果任何注銷令牌與我們嘗試登錄的帳戶匹配并且令牌尚未過(guò)期,則 auth.sendCode將直接返回一個(gè)SESSION_PASSWORD_NEEDEDRPC 錯(cuò)誤,直接要求用戶輸入 2FA 密碼,而不發(fā)送任何授權(quán)碼。

    否則,系統(tǒng)將使用以下邏輯發(fā)送授權(quán)碼:

    代碼類型

    系統(tǒng)會(huì)自動(dòng)選擇授權(quán)碼的發(fā)送方式;代碼可以通過(guò)多種可能的方式到達(dá):

    • 注銷令牌
    • 電報(bào)代碼
    • 短信代碼
    • 電話:合成語(yǔ)音會(huì)告訴用戶輸入哪個(gè)驗(yàn)證碼。
    • Flash電話:代碼將通過(guò)Flash電話發(fā)送,該電話將立即關(guān)閉。在最后一種情況下,電話代碼將是電話號(hào)碼本身,只需確保電話號(hào)碼與指定的模式匹配(請(qǐng)參閱auth.sentCodeTypeFlashCall)。
    • 未接電話:代碼將通過(guò)閃電話發(fā)送,將立即關(guān)閉。呼叫的電話號(hào)碼的最后一位是必須由用戶手動(dòng)輸入的代碼。

    auth.sendCode方法還具有用于啟用/禁用使用緊急呼叫和未接呼叫的參數(shù),并允許傳遞將包含在已發(fā)送 SMS 中的 SMS 令牌。例如,在較新版本的 android 中需要后者,才能使用android SMS 接收器 API。

    通過(guò)二維碼登錄

    導(dǎo)出登錄令牌

    首先,要登錄現(xiàn)有 Telegram 帳戶的應(yīng)用程序必須調(diào)用auth.exportLoginToken 。該方法將返回一個(gè)auth.loginToken構(gòu)造函數(shù),其中包含二進(jìn)制登錄token和到期日期(通常為 30 秒)。

    登錄token必須使用base64url進(jìn)行編碼,嵌入在tg://login?token=base64encodedtokenURL 中并以QR 碼的形式顯示給用戶。當(dāng)前二維碼到期后,必須調(diào)用auth.exportLoginToken方法,并自動(dòng)生成新的二維碼。

    接受登錄令牌

    為了登錄,必須使用auth.acceptLoginToken由已登錄的 Telegram 應(yīng)用程序掃描并接受 QR 碼。在方法中使用令牌之前,必須從tg://loginURI 中提取令牌并進(jìn)行 base64url 解碼。

    該方法可能返回的錯(cuò)誤是:

    • 400 -AUTH_TOKEN_INVALID提供了無(wú)效的授權(quán)令牌
    • 400 – AUTH_TOKEN_EXPIRED,提供的授權(quán)令牌已過(guò)期,必須重新掃描更新的二維碼
    • 400 -AUTH_TOKEN_ALREADY_ACCEPTED授權(quán)令牌已被使用

    該方法將返回一個(gè)授權(quán)對(duì)象,其中包含有關(guān)我們剛剛授權(quán)的應(yīng)用程序和會(huì)話的信息。

    確認(rèn)(導(dǎo)入)登錄令牌

    登錄的應(yīng)用程序調(diào)用auth.acceptLoginToken并接受登錄令牌后,嘗試登錄的應(yīng)用程序?qū)⑹盏絬pdateLoginToken更新,這將觸發(fā)對(duì)auth.exportLoginToken方法 的第二次調(diào)用。

    然后,第二次調(diào)用應(yīng)該返回一個(gè)auth.loginTokenSuccess構(gòu)造函數(shù),指示登錄成功,本質(zhì)上允許與 API 進(jìn)行進(jìn)一步的授權(quán)交互。

    但是,如果兩個(gè)應(yīng)用程序之間存在 DC 不匹配,則返回auth.loginTokenMigrateTo,嘗試登錄的應(yīng)用程序應(yīng)通過(guò)調(diào)用指定的auth.importLoginTokentoken來(lái)響應(yīng)指定的 DC。

    這個(gè)調(diào)用最終應(yīng)該返回一個(gè)auth.loginTokenSuccess構(gòu)造函數(shù)。

    消息草稿

    消息草稿

    Telegram 中的消息草稿允許在設(shè)備之間同步輸入到消息字段中的文本。

    草稿

    草稿由DraftMessage構(gòu)造函數(shù)表示。在編寫要發(fā)送給特定對(duì)等方的消息時(shí),應(yīng)使用特定對(duì)等草稿的參數(shù)作為默認(rèn)值(在媒體的情況下,仍應(yīng)使用相同的草稿作為基礎(chǔ),消息將成為標(biāo)題)。如果用戶在發(fā)送消息之前退出應(yīng)用程序,則消息應(yīng)保存為草稿:

    保存草稿

    可以使用messages.saveDraft方法保存草稿。

    下載草稿

    新草稿會(huì)通過(guò)updateDraftMessage更新自動(dòng)發(fā)送到所有設(shè)備。

    通過(guò) API 獲取的對(duì)話對(duì)象也包含與對(duì)話相關(guān)的草稿。

    開源協(xié)議:GPL-2.0 license

    開源地址:https://github.com/DrKLO/Telegram

    鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
    上一篇 2022年6月17日 18:22
    下一篇 2022年6月17日 18:22

    相關(guān)推薦

    聯(lián)系我們

    聯(lián)系郵箱:admin#wlmqw.com
    工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息