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();//开始登陆
        
      • 发送消息(文中$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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,594评论 18 139
  • 本文以一种简化的格式描述OAuth 2.0 ,以帮助开发人员和服务提供者实现该协议。 The OAuth 2 sp...
    KennethChen93阅读 4,139评论 1 11
  • 有这么么个现象:在你上学的时候,父母很担心你耍朋友;等到你毕业了找工作了,父母很担心你耍不到朋友。 当然,这都是有...
    翱蓝阅读 287评论 0 0
  • 高中生,早七晚十一的生活,喜欢摄影。看见让我心动的景色就会想拍下来。摄影真的可以作为工作养活我自己吗?我对此一无所...
    劉禹靑阅读 355评论 5 4
  • 名流小敏推崇话术: 姐,您好!上次我们去源宸国际头等舱培训了,在培训的会场上我订了一个目标,姐,您知道我订了什么目...
    游帅来也阅读 296评论 0 0