2016-10-01 1 views
3

Ich habe einen Bot auf Zwietracht gemacht, und ich möchte Anfrage an die API zu verwalten Kanäle, Display-Nachrichten, diese Art von Dingen. Ich habe mit Postman begonnen, um einige Aufrufe an die API zu machen, es funktioniert gut.Verwenden Disharmonie API mit PHP & CURL

Link zur API: https://discordapp.com/developers/docs/intro

Dann habe ich versucht, die Anfrage zu tun PHP (wamp) verwendet wird, mit Curl, wird die Anfrage gesendet, aber die API mir eine 401 Unauthorized Antwort zurückschicken, trotz der Tatsache, dass Ich habe den korrekten Autorisierungsheader gesendet. Ich habe die ausführliche Option hinzugefügt, um mehr Informationen zu bekommen:

* 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 

Mein 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); 

ich file_get_contents auch versucht, aber funktionierte nicht. Ich kann nicht sehen, was falsch ist, vielleicht SSL-Zertifikat? Irgendwelche Gedanken? Ich habe 3 Tage damit zu kämpfen, mir gehen die Ideen aus.

Vielen Dank!

Antwort

5

Ok, ich hatte gerade den ersten Platz in dem Kopf

CURLOPT_HTTPHEADER  => array('Authorization: Bot <TOKEN>') 

statt

CURLOPT_HTTPHEADER  => array('Authorization : Bot <TOKEN>'), 
zu entfernen