2017-07-04 1 views
1

c'est d'info ma chaîne:Comment puis-je ajouter mon contact dans mon canal avec python API téléthon

dialogs, entities = client.get_dialogs(1) 
entity = entities[0] 
print(entity) 
(channel (ID: 0xa14dca52) = (creator=True, kicked=None, left=None, editor=None, moderator=None, broadcast=True, verified=None, megagroup=None, restricted=None, democracy=None, signatures=None, min=None, id=1135498252, access_hash=-6282984409346664480, title=channel_test, username=None, photo=(chatPhotoEmpty (ID: 0x37c1011c) =()), date=2017-07-04 06:11:05, version=0, restriction_reason=None)) 

et j'ai 3 contacts:

contacts = client.invoke(GetContactsRequest("")) 
for u in contacts.contacts: 
    print (u) 
(contact (ID: 0xf911c994) = (user_id=231735496, mutual=False)) 
(contact (ID: 0xf911c994) = (user_id=408708469, mutual=False)) 
(contact (ID: 0xf911c994) = (user_id=442246143, mutual=False)) 

Je ne sais pas comment je peux l'utiliser code:

from telethon.tl.functions.messages import AddChatUserRequest 

client.invoke(AddChatUserRequest(
    chat_id, 
    user_to_add, 
    fwd_limit=10 # allow the user to see the 10 last messages 
)) 

Qu'est-ce que chat_id? et user_to_add?

quand j'utilise ce code

client.invoke(AddChatUserRequest(
    1135498252, 
    231735496, 
    fwd_limit=10 # allow the user to see the 10 last messages 
)) 

i cette erreur

Traceback (most recent call last): 
File "<pyshell#102>", line 4, in <module> 
    fwd_limit=10 # allow the user to see the 10 last messages 
    File "C:\Python34\lib\site-packages\telethon\telegram_client.py", line 247, in invoke 
    request, timeout=timeout, updates=updates) 
    File "C:\Python34\lib\site-packages\telethon\telegram_bare_client.py", line 188, in invoke 
    self.sender.send(request) 
    File "C:\Python34\lib\site-packages\telethon\network\mtproto_sender.py", line 57, in send 
    request.on_send(writer) 
    File "C:\Python34\lib\site-packages\telethon\tl\functions\messages \add_chat_user.py", line 39, in on_send 
    self.user_id.on_send(writer) 
    AttributeError: 'int' object has no attribute 'on_send' 
+0

chat_id est l'identifiant du canal (1135498252) et user_to_add est l'ID de l'utilisateur (231735496) – tashakori

Répondre

1

Comme je l'ai dit sur the issue Je suppose que vous avez ouvert, vous devez utiliser le contact.users, pas contacts.contacts. Si vous voulez ajouter le premier utilisateur, d'abord récupérer, puis l'utiliser sur la demande:

contacts = client(GetContactsRequest('')) 
user = contacts.users[0] # For instance 
client.invoke(AddChatUserRequest(
    chad_id=1135498252, 
    user_id=user, # Yes, the name is misleading 
    fwd_limit=10 
)) 

Comme toujours, the documentation is your friend et la documentation AddChatUserRequest dit clairement que user_id est de type InputUser (mais vous pouvez passez le User aussi).

+0

est pas un travail et ont eroore résultat telethon.errors.rpc_errors_400.UserIdInvalidError: (UserIdInvalidError (...), « ID d'objet non valide Assurez-vous de passer les bons caractères. – netdevil

+1

Parce que vous n'avez pas mis à jour le Téléthon, vous devez utiliser l'ancien appel 'get_input_peer'. Si vous RTFM vous remarquerez qu'il prend un 'InputPeer' et pas un' User'; mais les dernières versions vous permettent d'utiliser un 'User' parce que c'est plus confortable. – Lonami