我的机器人出了点小问题。为了开发我的机器人,我做了一个新的开发机器人,它与我的正常机器人共享相同的代码,但有自己的令牌。但是,我在开发过程中遇到了一个小问题。
我使用以下代码,来获取某人的头像:
client.users.get(event.user.uid).avatarURL
这在我的正常情况下工作正常,但是,在我的Dev-Bot上,我得到这个错误消息:
Error getting documents TypeError: Cannot read property 'AvatarURL' of undefined
我认为这是由于这样的事实,我的机器人不能访问用户的头像,因为它不共享相同的服务器/公会作为这个用户.
是否有任何我可以使用的变通方法?
1条答案
按热度按时间lyfkaqu11#
由于Discord.js及其缓存方式,并非所有用户都将被缓存在bot中。虽然它实际上不知道用户的任何信息的可能性很小,但Discord API仍有很大的可能性允许您从中获取信息。
要解决这个问题,在最新的master* 中缓存 *,我们必须使用Client.users,它返回一个UserStore。在UserStore中,我们可以使用一个名为fetch的方法来获取有关用户的信息。
为了在最新的稳定版本中修复这个问题,我们必须使用一个名为Client.fetchUser的方法,它做同样的事情,但返回一个User而不是UserStore。
请注意,这仅适用于使用机器人帐户。下面是它的用法示例:
如果在获取用户时出错(比如DiscordAPI权限错误),这意味着在不知道用户是谁(或与用户共享公会)的情况下,机器人无法获取用户的头像。快乐编码!