Last active
March 23, 2019 13:26
-
-
Save tateisu/5d1db89783dd2607a7a7a7d98f25a1c8 to your computer and use it in GitHub Desktop.
my app can get /users/@me/guilds, but can't get /guilds/{id}/channels . why?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
my app can get /users/@me/guilds, but can't get /guilds/{id}/channels . why? | |
---------------------------------------- | |
log | |
$ perl testApp1.pl | |
apiGet https://discordapp.com/api/v6/users/@me/guilds | |
[{"owner": false, "permissions": 104324161, "icon": "423a112cd4b14ba6105051dcae0b7880", "id": "231908446830723072", "name": "joinmastodon.org"}, {"owner": false, "permissions": 104324161, "icon": null, "id": "305703658107043850", "name": "mastodon-jp"}, ...] | |
guild=joinmastodon.org | |
apiGet https://discordapp.com/api/v6/guilds/231908446830723072/channels | |
HTTP/1.1 401 UNAUTHORIZED | |
Connection: close | |
Date: Sat, 23 Mar 2019 13:06:36 GMT | |
Via: 1.1 google | |
Server: cloudflare | |
Content-Length: 43 | |
Content-Type: application/json | |
Alt-Svc: clear | |
CF-RAY: 4bc09f9f49739433-NRT | |
Client-Date: Sat, 23 Mar 2019 13:06:36 GMT | |
Client-Peer: 104.16.58.5:443 | |
Client-Response-Num: 1 | |
Client-SSL-Cert-Issuer: /C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA | |
Client-SSL-Cert-Subject: /OU=Domain Control Validated/OU=PositiveSSL/CN=discordapp.com | |
Client-SSL-Cipher: ECDHE-RSA-AES128-GCM-SHA256 | |
Client-SSL-Socket-Class: IO::Socket::SSL | |
Client-Warning: Missing Authenticate header | |
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct" | |
Set-Cookie: __cfduid=d0b328bf4e6127f9d767647e1c9e7496f1553346396; expires=Sun, 22-Mar-20 13:06:36 GMT; path=/; domain=.discordapp.com; HttpOnly | |
Strict-Transport-Security: max-age=31536000; includeSubDomains | |
{"code": 0, "message": "401: Unauthorized"} | |
-------------------- | |
code snippet | |
sub apiGet($){ | |
my($path)=@_; | |
my $url = "$urlBase/v6$path"; | |
warn "apiGet $url\n"; | |
my $res = $ua->get( $url, Authorization => "Bearer $accessToken" ); | |
$res->is_success or die $res->as_string; | |
warn $res->content,"\n"; | |
return decode_json $res->content; | |
} | |
my $guilds = apiGet('/users/@me/guilds'); | |
for my $guild (@$guilds){ | |
# owner,permissions.icon,id,name | |
print "guild=$guild->{name}\n"; | |
# GET/guilds/{guild.id}/channels | |
my $channels = apiGet("/guilds/$guild->{id}/channels"); | |
for my $channel (@$channels){ | |
# id,name,type | |
next if not $channel->{type} == 0; | |
print "text channel $channel->{name}\n"; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment