Telegram资源整理

本文章仅作为个人笔记

相信看到文章的应该都知道Telegram是国外一款开源强加密的全平台通讯工具,这里就不多介绍了,直接上个人的一些资源和分析与理解,如果有不对的地方还望大神指正。

Telegram在很多搜索引擎上搜索都是机器人开发相关的,很少对用户进行操作,为此特地整理一些用户操作相关,还希望能够对一些人有所帮助。

Telegram官网

Telegram获取个人开发信息教程

Telegram开发信息入口(因为Telegram操作用户的开发都需要3个参数,而这3个参数就是从这个网页获取的)

Telegram的Android开源代码地址(本人尝试过编译运行此代码,但是试了非常久依然无法编译通过,无奈只能放弃,如果有大神能跑起来还望指教一二,在此谢过了。)

Telegram的AngularJs开源代码地址(本人主攻方向为Android,js相关并不熟悉,所以也只是跑了下,可以运行)

Telegram的php开源代码地址(这一套代码是可以运行的,本人还特地抽离了工具包封装到了Laravel运行,无奈Laravel每一个请求都是不同的线程,无法复用一个连接实例,导致每次调用Telegram相关api都需要走一遍登录操作,效率非常低,无奈只能放弃,如果有大神有解决方案还望指点。)

Telegram的python开源代码地址(这一套代码可以运行,而且很多方法调用都是没有问题,本人最终平衡后使用的是这一套代码,结合python的flask框架进行交互)

Telethon的api文档地址(Telethon就是Telegram的python开源工具代码)

  • 因为文章这样结束显的有些短,就贴一些个人用到的可以调用方法贴出来了。

    • php相关
      • 初始化
        use Illuminate\Support\Facades\Log;
        $app_id = 12345678;//这里填写用户的app_id
        $api_hash = 'xxxxxxxxxxxxxx';//这里填写用户的api_hash
        $phone_number = '+8618888888888';//这里填写用户电话号码
        $this->MadelineProto = new \danog\MadelineProto\API('/tmp/session.madeline', ['app_info' => ['api_id' => $app_id, 'api_hash' => $api_hash], 'updates' => ['handle_updates' => false]]);//创建示例
        $this->MadelineProto->start();//开始登陆
        
      • 发送消息(文中 u s e r n a m e u s e r n a m e @ @ t e s t message则直接为想要发送的消息)
        $this->MadelineProto->messages->sendMessage(['peer' => $username, 'message' => $message]);
        
      • 加入群组($groupLink为群组加入链接,如https://t.me/testtttttt
        $this->MadelineProto->channels->joinChannel(['channel' => $groupLink]);
        
      • 根据username获取用户详细信息
        $this->MadelineProto->get_full_info($username);
        
      • 根据关键字在全网查找联系人( s e a r c h limit为获取个数,最大为1000个。)
        $this->MadelineProto->contacts->search(['q' => $search, 'limit' => $limit])['users'];
        
      • 检查电话号码是否激活($phoneNumber为电话号码,记得添加前缀)
        $this->MadelineProto->auth->checkPhone(['phone_number' => $phoneNumber]);
        
      • 获取当前用户聊天列表(获取聊天列表可过滤群组,变相获取所有群组)
        $this->MadelineProto->messages->getAllChats(['except_ids' => [0]])['chats'];
        
      • 根据群组信息获取群组所有用户信息($groupInfo可以是邀请链接或id,例如’https://t.me/danogentili‘/’chat#492772765’/’channel#38575794’)
        $this->MadelineProto->get_pwr_chat($groupInfo);
        
    • python相关
      • 初始化

        api_id = 12345 # 用户api_id
        api_hash = ‘xxxxxxxxxxxxx’ # 用户 api_hash
        phone_number = ‘+861888888888’ # 用户号码
        client = TelegramClient(phone_number, api_id, api_hash)
        client.session.report_errors = False
        client.connect()
        if not client.is_user_authorized():
        client.send_code_request(phone_number)
        client.sign_in(phone_number, input(‘Enter the code: ‘))

      • 发送消息(其中user_id为用户id,message为需要发送的消息)
        client.send_message(int(user_id), str(message))
        
      • 获取当前用户聊天列表(获取聊天列表可过滤群组,变相获取所有群组)
        responses = client.iter_dialogs(10000)
            if responses is not None:
              for response in responses:
                if isinstance(response.entity, Channel): # 过滤群组
                  print(response)
        
      • 根据群组信息获取群组所有用户信息
        channel = client.get_entity(PeerChannel(int(in_id)))  # 根据群组id获取群组对象
        responses = client.iter_participants(channel, aggressive=True) # 获取群组所有用户信息
        for response in responses:
          if response.first_name is not None:
            first_name = bytes.decode(base64.b64encode(response.first_name.encode('utf-8')))
          else:
            first_name = None
          if response.last_name is not None:
            last_name = bytes.decode(base64.b64encode(response.last_name.encode('utf-8')))
          else:
            last_name = None
          response.id # 用户id
          response.access_hash # 用户hash值
          response.username # 用户username
          response.phone # 用户电话号码
        

猜你喜欢

转载自blog.csdn.net/makai554892700/article/details/80077249