Skip to content

登录人模块

机器人本身被封装为一个ContactSelf类。 这个类继承自联系人Contact类。

ContactSelf

机器人本身被封装为一个ContactSelf类。

提示: 这个类继承自联系人Contact类。

类型: 公共类

async def avatar(self, file: Optional[FileBox] = None) ⇒ Optinal[FileBox]

获取/设置 机器人所使用账号的头像

类型: ContactSelf类的实例方法

参数 类型
[file] FileBox

示例

( 获取机器人账号的头像, 返回FileBox类型的对象)

# 保存头像到本地文件, 类似 `1-name.jpg`的格式
import asyncio
from wechaty import Wechaty, FileBox, Contact

class MyBot(Wechaty):

    async def on_login(self, contact: Contact) -> None:
        print(f"用户{contact}登入")
        file: FileBox = await contact.avatar()
        name = file.name
        await file.to_file(name, True)
        print(f"保存头像: {contact.name} 和头像文件: {name}")


asyncio.run(MyBot().start())

示例

(设置机器人账号的头像)

import asyncio
from wechaty import Wechaty, FileBox, Contact

class MyBot(Wechaty):

    async def on_login(self, contact: Contact) -> None:
        print(f"用户{contact}登入")
        file_box: FileBox = FileBox.from_url('https://wechaty.github.io/wechaty/images/bot-qr-code.png')
        await contact.avatar(file_box)
        print(f"更改账号头像成功")


asyncio.run(MyBot().start())

async def qr_code(self) ⇒ str

获取机器人账号的二维码链接

类型: ContactSelf的实例方法

示例
import asyncio
from wechaty import Wechaty
from wechaty.user import ContactSelf
from wechaty.utils.qrcode_terminal import qr_terminal_str

class MyBot(Wechaty):

    async def on_login(self, contact: ContactSelf) -> None:
        print(f"用户{contact}登入")
        qr_code = await contact.qr_code()  # 获取二维码信息
        print(qr_terminal_str(qr_code)) # 在控制台打印二维码

asyncio.run(MyBot().start())

async def signature(self, signature: str) ⇒ None

更改机器人账号的签名

类型: ContactSelf的实例方法

参数 类型 描述
signature str 您想要改变的新的签名
示例
import sys
import asyncio
from datetime import datetime
from wechaty import Wechaty
from wechaty.user import ContactSelf

class MyBot(Wechaty):

    async def on_login(self, contact: ContactSelf) -> None:
        print(f"用户{contact}登入")
        try:
            await contact.signature(f"签名被Wechaty更改于{datetime.now()}")
        except Exception as e:
            print("更改签名失败", e, file=sys.stderr)

asyncio.run(MyBot().start())

@property def name(self) ⇒ str

获取机器人的名字

类型: ContactSelf的实例方法

示例 (更改名字与获取名字)
import sys
import asyncio
from datetime import datetime
from wechaty import Wechaty
from wechaty.user import ContactSelf


class MyBot(Wechaty):

    async def on_login(self, contact: ContactSelf) -> None:
        old_name = contact.name  # 获取Bot账号的名字
        print(old_name)

asyncio.run(MyBot().start())

async def set_name(self, name: str) -> None:

获取机器人的名字

类型: ContactSelf的实例方法

import sys
import asyncio
from datetime import datetime
from wechaty import Wechaty
from wechaty.user import ContactSelf


class MyBot(Wechaty):

    async def on_login(self, contact: ContactSelf) -> None:
        old_name = contact.name  # 获取Bot账号的名字
        contact.set_name(f"{old_name}{datetime.now()}")  # 更改Bot账号的名字

asyncio.run(MyBot().start())