当我使用此命令查看联系人时:
result = client.invoke(GetContactsRequest(""))
print(result)
我看到了这个结果:
(contacts.contacts (ID: 0x6f8b8cb2) = (contacts=['(contact (ID: 0xf911c994) = (user_id=334412783, mutual=False))'], users=['(user (ID: 0x2e13f4c3) = (is_self=None, contact=True, mutual_contact=None, deleted=None, bot=None, bot_chat_history=None, bot_nochats=None, verified=None, restricted=None, min=None, bot_inline_geo=None, id=334412783, access_hash=-8113372651091717470, first_name=khood, last_name=None, username=Mosafer575, phone=19132594548, photo=(userProfilePhoto (ID: 0xd559d8c8) = (photo_id=1436291966805583785, photo_small=(fileLocation (ID: 0x53d69076) = (dc_id=1, volume_id=803110857, local_id=86736, secret=1232685751818265379)), photo_big=(fileLocation (ID: 0x53d69076) = (dc_id=1, volume_id=803110857, local_id=86738, secret=3801220285627155105)))), status=(userStatusOffline (ID: 0x8c703f) = (was_online=2017-06-16 13:09:57)), bot_info_version=None, restriction_reason=None, bot_inline_placeholder=None, lang_code=None))']))
现在我如何使用first_name我的朋友或user_id或电话或我联系人中的其他详细信息向这位朋友发送一条消息? 我看到了page,但我没注意到。 请使用简单的代码
答案 0 :(得分:1)
如果是您的联系人,您可以像使用用户名一样使用电话号码:
client.send_message('+xx123456789', 'hello')
旧答案:
users=['(user (ID: 0x2e13f4c3) ...`
users
列表包含您要与之通话的用户。所以你得到那个用户:
user = result.users[0]
然后你可以拨打.send_message(user, 'your message')
。
答案 1 :(得分:0)
https://stackoverflow.com/content/img/progress-dots.gif很容易显示所有联系人并发送消息
iterator_traits<Iterator>
导入后
from telethon.tl.types import InputPhoneContact
from telethon.tl.functions.contacts import ImportContactsRequest
您可以使用联系人ID
发送消息
答案 2 :(得分:0)
如果发送消息所有合同号...
all_contacts = await client(GetContactsRequest(hash=0))
for i in range(len(all_contacts.users)):
if all_contacts.users[i].phone != None:
await client.send_message(all_contacts.users[i].phone, 'hello')
else:
await client.send_message(all_contacts.users[i].username, 'hello')