web-dev-qa-db-ja.com

discord.jsで、Discord Botを使用してユーザーにダイレクトメッセージを送信できますか?

DiscordBotを使用しているユーザーにプライベートメッセージを送信したい。

ユーザーはボットと同じサーバーにいません。

Author.sendMessageを使用できる場合、作成者変数を初期化(検索)するにはどうすればよいですか?

ユーザーIDを持つユーザーを見つけることはできますか?

読んでくれてありがとう。

2
inhoLee

そして、ユーザーはボットと同じサーバーにいません。

そして

間違えました。追加したボットと同じサーバーにいないユーザーにPrivatemessageを送信したいと思います。 [source]

つまり、不可能です。
ボットは、ダイレクトメッセージを送信できるように、ユーザーと少なくとも1つの共通サーバーを持っている必要があります。
ユーザーがボットと同じサーバー上にいる場合にのみ、この投稿の他の方法を使用してDMを送信できます。
client.users.get("someID").send("someMessage");

3
André

これを試してみるべきだとわかりました。うまくいくはずです!使用するときはスペースを取り除いてください!

client.on('message', msg => {    
  if (msg.content === `"Your message!"`) {      
    msg.channel.type === (`"dm"`) + msg.author.sendMessage(`"Your other message"`) 
  }
}
0
Awesome

まず、sendMessageは非推奨であり、今後のアップデートで削除される予定です。メッセージを送信するには、sendを使用します。ユーザーIDとDM)でユーザーを見つけるには、Client.users.get("User ID here").send("Message to Send")を実行するだけです。この回答がお役に立てば幸いです。

0

Client オブジェクトには users プロパティがあり、ボットとサーバーを共有するすべてのキャッシュユーザーが含まれています。したがって、<Client>.users.get('id')を使用して、IDでユーザーを取得できます。

また、sendMessageは非推奨であるため、代わりに<User>.send('Hi')の使用を検討する必要があります。

0
itsrvn