2017-04-23 125 views
0

我需要獲取用戶的下午通道才能看到我的機器人以前發送給該用戶的消息。我已經從標準通道的命令消息中獲得了其用戶對象。如何在Discord.py中獲取用戶的私人消息頻道?

這是我到目前爲止已經試過:

@client.event 
async def in_msg(msg): 
    user = msg.author 
    privateChannel = client.get_channel(user.id) # not working 
    if privateChannel is not None: 
     await doSomethingWithChannel(privateChannel, user) 
    else: 
     privateChannel = await client.start_private_message(user) 
     await firstMessageToUser(privateChannel, user) 

然而,這似乎是一個用戶的DM通道沒有與他們的用戶ID。我現在應該怎麼做?

回答

1

目前沒有任何簡單的方法可以做到這一點。有可能是在更新版本的user.dm_channel的計劃,但現在我們不得不湊合着過client.private_channels循環和尋找用戶:

@client.event 
async def in_msg(msg): 
    user = msg.author 
    for ch in client.private_channels: 
     if user in recipients and len(recipients) == 2: 
      await doSomethingWithChannel(ch, user) 
      return 
    # user doesn't have a PM channel yet if we got here 
    ch = await client.start_private_message(user) 
    await firstMessageToUser(ch, user) 
-1

用戶對象本身成爲下午的目的地。 所以,privateChannel =用戶