telegram-mtproto, Telegram 客户端 api ( MTProto ) 库

分享于 

4分钟阅读

GitHub

  繁體
Telegram MTProto library (WIP)
  • 源代码名称:telegram-mtproto
  • 源代码网址:http://www.github.com/zerobias/telegram-mtproto
  • telegram-mtproto源代码文档
  • telegram-mtproto源代码下载
  • Git URL:
    git://www.github.com/zerobias/telegram-mtproto.git
    Git Clone代码到本地:
    git clone http://www.github.com/zerobias/telegram-mtproto
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/zerobias/telegram-mtproto
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    telegrammtproto

    es6中的Telegram移动协议(MTProto)库

    关于MTProto,

    MTProto是Telegram Messenger协议,"旨在从移动设备上运行的应用程序访问服务器API"。

    高级组件(API查询语言):定义将API查询和响应转换为二进制消息的方法。

    加密()层:定义在通过传输协议传输消息之前加密消息的方法。

    传输组件:定义客户端和服务器通过其他现有网络协议(例如http,https,tcp,udp )传输消息的方法。

    安装

    
    
    
    
    $ npm install --save telegram-mtproto@beta
    
    
    
    

    用法

    
    
    
    
    import MTProto from 'telegram-mtproto'
    
    
    
    const phone = {
    
    
     num : '+9996620001',
    
    
     code: '22222'
    
    
    }
    
    
    
    const api = {
    
    
     layer : 57,
    
    
     initConnection : 0x69796de9,
    
    
     api_id : 49631
    
    
    }
    
    
    
    const server = {
    
    
     dev: true //We will connect to the test server.
    
    
    } //Any empty configurations fields can just not be specified
    
    
    
    const client = MTProto({ server, api })
    
    
    
    async function connect(){
    
    
     const { phone_code_hash } = await client('auth.sendCode', {
    
    
     phone_number : phone.num,
    
    
     current_number: false,
    
    
     api_id : 49631,
    
    
     api_hash : 'fb050b8f6771e15bfda5df2409931569'
    
    
     })
    
    
     const { user } = await client('auth.signIn', {
    
    
     phone_number : phone.num,
    
    
     phone_code_hash: phone_code_hash,
    
    
     phone_code : phone.code
    
    
     })
    
    
    
     console.log('signed as ', user)
    
    
    }
    
    
    
    connect()
    
    
    
    

    上面使用了来自API的两个函数。

    
    
    
    
    type auth.sendCode = (phone_number: string, sms_type: int,
    
    
     api_id: int, api_hash: string, lang_code: string) => {
    
    
     phone_registered: boolean,
    
    
     phone_code_hash: string,
    
    
     send_call_timeout: int,
    
    
     is_password: boolean
    
    
     }
    
    
    
    type auth.signIn = (phone_number: string, phone_code_hash: string, phone_code: string) => {
    
    
     expires: int,
    
    
     user: User
    
    
    }
    
    
    
    

    有关其他方法,在官方文档

    可以从 examples文件夹中获得其他示例。

    存储

    可以使用自己的存储,如localForage来保存数据。模块接受以下接口

    
    
    
    
    interface AsyncStorage {
    
    
     get(key: string): Promise<any>;
    
    
     set(key: string, value: any): Promise<void>;
    
    
     remove(...keys: string[]): Promise<void>;
    
    
     clear(): Promise<void>;
    
    
    }
    
    
    
    
    
    
    
    
    import { MTProto } from 'telegram-mtproto'
    
    
    import { api } from './config'
    
    
    import CustomStorage from './storage'
    
    
    
    const client = MTProto({
    
    
     api,
    
    
     app: {
    
    
     storage: CustomStorage
    
    
     }
    
    
    })
    
    
    
    
    

    许可证

    the project is released under the Mit License


    API  TEL  Telegram  MTP