i've made a bot on discord, and i want to make request to the API to manage channels, display messages, those kind of things. I've started by using Postman, to make some calls to the API, it works fine.
Link to the API : https://discordapp.com/developers/docs/intro
Then i tried to do the request using PHP(wamp), with cURL, the request is sent, but the API send me back a 401 Unauthorized response, despite the fact that I sent the correct Authorization header. I've added the verbose option to get more infos :
* Hostname in DNS cache was stale, zapped
* Trying 104.16.58.5...
* Connected to discordapp.com (104.16.58.5) port 443 (#0)
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use http/1.1
* Server certificate:
* subject: OU=Domain Control Validated; OU=PositiveSSL; CN=discordapp.com
* start date: 2016-03-01 00:00:00 GMT
* expire date: 2017-03-03 23:59:59 GMT
* subjectAltName: discordapp.com matched
* issuer: C=GB; ST=Greater Manchester; L=Salford; O=COMODO CA Limited; CN=COMODO RSA Domain Validation Secure Server CA
* SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
> GET /api/channels/230833430827499520/messages HTTP/1.1
Host: discordapp.com
Accept: */*
Authorization : Bot <TOKEN>
< HTTP/1.1 401 UNAUTHORIZED
< Date: Sat, 01 Oct 2016 01:23:22 GMT
< Content-Type: application/json
< Content-Length: 43
< Connection: keep-alive
< Set-Cookie: __cfduid=d23fd84fe760ad0b225004284861067621475285002; expires=Sun, 01-Oct-17 01:23:22 GMT; path=/; domain=.discordapp.com; HttpOnly
< Strict-Transport-Security: max-age=31536000; includeSubDomains
< Via: 1.1 google
< Alt-Svc: clear
< Server: cloudflare-nginx
< CF-RAY: 2eac1be3385d148b-AMS
<
* Connection #0 to host discordapp.com left intact
My code :
$url = 'https://discordapp.com/api/channels/230833430827499520/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);
I tried file_get_contents
as well but didn't work.
I can't see what's wrong, maybe SSL certificate?
Any thoughts?
Does Discord use PHP? We are using PHP programming language to create discord bot, for this, you need basic knowledge of it and a composer (https://getcomposer.org/) installed on your server. Note: PHP version must be 5.6 or above, we recommend to use PHP 7.
Are there examples of free Discord APIs? DiscordBot offers all of its endpoints for free, but the price for other APIs in the Discord collection can vary. While most of the big games represented on the list have free APIs, others are paid or freemium.
Ok, i just had to remove the first space in the header
CURLOPT_HTTPHEADER => array('Authorization: Bot <TOKEN>')
instead of
CURLOPT_HTTPHEADER => array('Authorization : Bot <TOKEN>'),
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With