Telegram资源整理 开发

作者: 草丛里的黄盖 | 来源:发表于2018-04-25 11:50 被阅读1299次

本文章仅作为个人笔记

相信看到文章的应该都知道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();//开始登陆
        
      • 发送消息(文中$username为获取的用户username,传入时前面加前缀@,如@test,$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);
        
      • 根据关键字在全网查找联系人($search为过滤条件,不可为空字符串,$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 # 用户电话号码
        

最后为了方便大家交流,建了个企鹅群,欢迎大家一起加入共同进步 799271038

相关文章

  • Telegram资源整理 开发

    本文章仅作为个人笔记 相信看到文章的应该都知道Telegram是国外一款开源强加密的全平台通讯工具,这里就不多介绍...

  • [Telegram] 学习资源

    http://www.theitstuff.com/making-simple-telegram-bot-php ...

  • 开发、学习资源整理

    罗列出自己认为比较好的学习网站、博客,排名不分先后 Github Get社区 GitHub上整理的一些工具 占小狼...

  • Telegram Client 开发

    可查阅telegram文档安装 到https://my.telegram.org/用手机号登录这个网址申请api申...

  • 好玩的Telegram群 & 电报资源分享

    每日阅读 & telegram & 电报 & 书籍分享 & mobi & pdf & 每日阅读群地址 常用资源圈 ...

  • WEB开发资源整理

    1,bootstrap :http://www.bootcss.com/ 2,JQuery轮播组件:http://...

  • App开发资源整理

    开源搜集器 android:开源项目集合:http://p.codekk.com/干货很多的博客:http://h...

  • 使用Facebook和Line等分享

    前言 我们在做开发的时候,需要将自己开发的网页分享到facebook、telegram、line等页面。然后需要在...

  • Python 安装 使用教程汇总

    整理汇总Python框架、库以及软件资源 【整理】【多图详解】如何在Windows下开发Python 第 4 章 ...

  • 常用前端开发资源整理

    最近发现收藏夹的东西太多太乱了,就想者把平时常用的资源整理出来,与大家共享。 1、vue配套工具 vue.js中文...

网友评论

  • 闪电峡谷:貌似现在获取不到用户手机号码了吧
    草丛里的黄盖:@闪电峡谷 可能获取不到了,现在已经不做这一块了。
  • 闪电峡谷:为啥无法连接 ,提示 RuntimeWarning: coroutine 'connect' was never awaited
    草丛里的黄盖:@闪电峡谷 https://docs.madelineproto.xyz/docs/PROXY.html#socks5-proxy
    闪电峡谷:@makai 我已经翻墙,然后该如何设置呢,能给点实例代码吗,谢谢
    草丛里的黄盖:@闪电峡谷 因为需要翻墙,如果已经用了ss还需要代码设置代理。
  • Gris_征程:你好,请问最后PHP的那个问题解决了吗?
    草丛里的黄盖:@Gris_征程 没有,群里有人解决了,用了不同的方案,重点在于核心工具代码,框架用自己的熟悉的可能不会遇到类似的问题。
  • a3a385b12b9f:我就想问下,有人跑成功么,能不能把结果列出来,还有,结果里能获取到telegram的用户电话号是吧
    草丛里的黄盖:@dev_lip 需要翻墙的,而且普通的翻墙代理软件可能还不行,得从路由器开始翻,或者放海外服务器调试。
    26b6e39dfb0b:@makai 需要翻墙吗?为啥我这报ConnectionRefusedError: [Errno 61] Connection refused
    草丛里的黄盖:@HWT_2b3d 当然是跑成功才贴出来的,电话号码是基本获取不到,至于有没有其他人用其他方式获取就不得而知了。但是根据username等能获取到的信息是可以给用户发消息的。
  • 241c058529b2:请教下 api id 和hash如何获取?
    241c058529b2:@makai 想请教下,申请api的时候,我的项目是Web类型需要填写域名信息,那么你是否知道,我一个域名可以用来申请多个账号的API呢?我是想做一个自动发送消息的小工具,但是服务都是在一个域名下面。
    241c058529b2:@makai 谢谢
    草丛里的黄盖:@super_wu 翻墙后打开网页 https://my.telegram.org/apps 会让你登录(输入手机号码记得前面加+86,如果没有注册要先下载客户端注册),登录完成后你需要根据里边提示创建一个app(只要填写一些信息就好),创建完成后你需要的所有信息就都在这个网页里边展示了,希望有所帮助。

本文标题:Telegram资源整理 开发

本文链接:https://www.haomeiwen.com/subject/nyuelftx.html