Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

998
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!