Это мой первый пост, я много читаю здесь, поэтому, надеюсь, я не смущаюсь. Я провел много поисков по этой теме с небольшими результатами, учитывая, что я новичок в PHP
, это тоже не помогает, и документация по этой теме скудна.
API Discord для PHP
ограничен определенными частями данных, которые вы можете запросить. Я пытаюсь сделать следующее: получить участников, проверить, какие роли у них есть, и, если они есть, подсчитать их .
В настоящее время с помощью API вы можете подсчитать всех членов в гильдии, однако вы не можете подсчитать всех членов в гильдии с определенной ролью. Мой конечный вывод - пройтись по снежинке и самому обработать сравнения.
Этот код возвращает снежинку (до 1000) для гильдии:
<?php
$json_options = [
"http" => [
"method" => "GET",
"header" => "Authorization: Bot TOKENREDACTED"
]
];
$json_context = stream_context_create($json_options);
$json_get = file_get_contents('https://discordapp.com/api/guilds/GUILDIDREDACTED/members?limit=1000', false, $json_context);
$json_decode = json_decode($json_get, true);
print_r($json_decode);
?>
А снежинка, которую я пытаюсь перебрать, выглядит так:
Array
(
[0] => Array
(
[nick] => nickname
[user] => Array
(
[username] => username
[discriminator] => 7697
[id] => 123456789012345
[avatar] => 32ad726b873445fff9145e47144a9465
)
[roles] => Array
(
[0] => 123456789012345678
[1] => 123456789012345678
)
[mute] =>
[deaf] =>
[joined_at] => 2018-05-18T07:22:49.562000+00:00
)
[1] => Array (annnd repeat for the next member)
Как видите, снежинка сложна в плане массивов.
Я пытаюсь выполнить цикл по каждой записи массива (_5 _, _ 6 _, _ 7_ и т. Д.), А затем к ролям. Если [user]
имеет идентификатор роли 123456789012345678
(например), тогда добавьте этот член в счетчик для печати, если совпадения нет, он просто проигнорирует это и перейдет к следующему. Но я не совсем уверен, с чего начать. Любая помощь или направление приветствуются, спасибо.
foreach ($json_decode as $member) { ... }
, и вы найдете идентификаторы ролей в$member['roles']
- person Wesley Murch   schedule 03.02.2019