私は不和のボットを作っています。チャンネルを管理したり、メッセージを表示したりするためにAPIにリクエストしたいと思います。 Postmanを使用してAPIへの呼び出しを開始しましたが、正常に動作します。 APIへPHPとcURLでdiscord APIを使用する
リンク:https://discordapp.com/developers/docs/intro
が、私はcURLのと、リクエストが送信され、PHP(WAMP)を使用して要求を実行しようとしましたが、APIは、その事実にもかかわらず、401不正な応答を私に送り返します私は正しいAuthorizationヘッダーを送った。 私はもっとに関する情報を得るためにverboseオプションを追加しました:
* 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
マイコード:
$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);
私は同様のfile_get_contentsを試みたが働いていませんでした。 何が間違っているのかわかりません。おそらくSSL証明書ですか? 何もありませんか?私はアイデアが不足している3日間これで苦しんでいる。
ありがとうございました!