Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

1K
Vistas
Usando la API de Discord y cURL para enviar un DM de Discord

¿Cómo podría enviar un Discord DM con cURL? Lo tengo funcionando con mensajes de canal, pero un Discord DM es muy importante para mi sitio web para mantener a los usuarios actualizados. A continuación se muestra lo que tengo hasta ahora, siendo la ID una ID de usuario de Discord.

 $url = 'https://discordapp.com/api/channels/591765736003731487/messages'; $ch = curl_init(); $f = fopen('request.txt', 'w'); curl_setopt_array($ch, array( CURLOPT_URL => $url, CURLOPT_HTTPHEADER => array('Authorization : Bot <TOKEN>'), CURLOPT_RETURNTRANSFER => 1, CURLOPT_FOLLOWLOCATION => 1, CURLOPT_VERBOSE => 1, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_STDERR => $f, )); $response = curl_exec($ch); fclose($f); curl_close($ch);
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Usando su código actual, hice un pequeño fragmento. Es posible que deba cambiar algunas cosas según sus necesidades, pero en este caso funciona según lo previsto. Para hacer un buen uso de la solicitud CURL y no hacer y usar código repetitivo, lo pondría en una función, en este caso MakeRequest($endpoint, $data)

Donde $endpoint es una cadena y $data debe ser una matriz

Para abrir y enviar un mensaje directo a un usuario, necesita estos puntos finales.

Para crear un nuevo mensaje directo

POST /usuarios/@yo/canales

Para enviar mensajes:

POST /canales/{canal.id}/mensajes

 <?php function MakeRequest($endpoint, $data) { # Set endpoint $url = "https://discord.com/api/".$endpoint.""; # Encode data, as Discord requires you to send json data. $data = json_encode($data); # Initialize new curl request $ch = curl_init(); $f = fopen('request.txt', 'w'); # Set headers, data etc.. curl_setopt_array($ch, array( CURLOPT_URL => $url, CURLOPT_HTTPHEADER => array( 'Authorization: Bot token', "Content-Type: application/json", "Accept: application/json" ), CURLOPT_RETURNTRANSFER => 1, CURLOPT_FOLLOWLOCATION => 1, CURLOPT_VERBOSE => 1, CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_POSTFIELDS => $data CURLOPT_STDERR => $f, )); $request = curl_exec($ch); curl_close($ch); return json_decode($request, true); } # Open the DM first $newDM = MakeRequest('/users/@me/channels', array("recipient_id" => "ID From the user")); # Check if DM is created, if yes, let's send a message to this channel. if(isset($newDM["id"])) { $newMessage = MakeRequest("/channels/".$newDM["id"]."/messages", array("content" => "Hello World.")); } ?>

ingrese la descripción de la imagen aquí

Advertencia: debido a cuestiones de seguridad y privacidad, es posible que un mensaje directo no se abra si:

  • El usuario no comparte el mismo servidor que su bot.
  • El usuario ha desactivado los DM de los miembros del servidor.
  • El usuario ha bloqueado tu bot.
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda