【问题标题】:Add new contact in api telegram python telethon在 api 电报 python telethon 中添加新联系人
【发布时间】:2017-11-19 17:04:26
【问题描述】:

如何在 Telethon python 中保存我的联系人中的号码?

from telethon import TelegramClient
from telethon.tl.functions.contacts import GetContactsRequest
from telethon.tl.types import InputPeerUser
client = TelegramClient('arta0', api_id, api_hash)
client.connect()
#number=+19133704541
#name='ali karimi'

添加联系人需要什么模块?

【问题讨论】:

    标签: python api telegram telethon


    【解决方案1】:

    您可以这样创建联系人:

    contact = InputPhoneContact(client_id = 0, phone = "+12345678", first_name="ABC", last_name="abc")
    
    result = client.invoke(ImportContactsRequest([contact], replace=True))
    

    要创建新联系人,您需要为 client_id 传递 0。

    【讨论】:

    【解决方案2】:

    您可以像这样创建一个新联系人:

    from telethon.sync import TelegramClient
    from telethon import TelegramClient
    from telethon.tl.functions.messages import AddChatUserRequest
    from telethon.tl.types import InputPhoneContact
    from telethon.tl.functions.contacts import ImportContactsRequest
    from telethon import functions, types
    
    # Create Client Object
    api_id = xxxxxxx
    api_hash = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    phone = '+xxxxxxxxxxxx'
    
    # Login
    client = TelegramClient(phone, api_id, api_hash)
    
    client.connect()
    if not client.is_user_authorized():
       client.send_code_request(phone)
       client.sign_in(phone, input('Enter the code: '))
    
    # add user to contact
    phoneNum= "+98xxxxxxxxxx"
    contact = InputPhoneContact(client_id=0, phone=phoneNum, first_name="", last_name="")
    result = client(ImportContactsRequest([contact]))
    

    要创建新联系人,您需要为 client_id 传递 0。

    【讨论】:

      【解决方案3】:
      contact = InputPhoneContact(client_id=0, phone='+918962141530', first_name='<First Name its required field>', last_name='<Last Name its optional field>')
      
      client.invoke(ImportContactsRequest[contact],replace=True ))
      *** TypeError: __init__() got an unexpected keyword argument 'replace'
      

      你可以使用

      result = client.invoke(ImportContactsRequest([contact]))
      

      在列表中添加联系人后,您可以显示所有用户列表

      contacts = client(GetContactsRequest(0))
      

      迭代联系人并显示所有用户信息

      【讨论】:

      • 嘿,你碰巧知道如何“迭代联系人”吗?当我尝试使用循环对其进行迭代时,我得到了TypeError: 'Contacts' object is not iterable
      【解决方案4】:

      以下是使用 daniil.it/MadelineProto 的方法:

      try {
           $MadelineProto = \danog\MadelineProto\Serialization::unserialize('session.madeline'); // Unserialize a stored session, if you haven't saved it yet, login first, see below
      } catch (\danog\MadelineProto\Exception $e) { // If 
          $MadelineProto = new \danog\MadelineProto\API();
          // Login as a user
          $sentCode = $MadelineProto->phone_login($number);
          echo 'Enter the code you received: ';
          $code = '';
          for ($x = 0; $x < $sentCode['type']['length']; $x++) {
              $code .= fgetc(STDIN);
          }
          $MadelineProto->complete_phone_login($code);
      }
      $inputContacts = [];
      $inputContacts[0] = ['_' => 'inputPhoneContact', 'client_id' => 0, 'phone' => '+172737', 'first_name' => 'first', 'last_name' => 'last', ];
      $inputContacts[1] = ['_' => 'inputPhoneContact', 'client_id' => 0, 'phone' => '+172737', 'first_name' => 'first', 'last_name' => 'last', ];
      // You can add maximum 4000000000 contacts
      
       $contacts_ImportedContacts = $MadelineProto->contacts->importContacts(['contacts' => $InputContacts, 'replace' => false, ]);
      
       $MadelineProto->serialize('session.madeline');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-25
        • 1970-01-01
        • 2021-06-11
        • 1970-01-01
        • 1970-01-01
        • 2014-10-05
        相关资源
        最近更新 更多