Это мой первый раз, когда я использую MailChimp API, я смотрел на некоторые примеры и пытался понять это самостоятельно, но я не могу получить то, что мне нужно.
У меня есть только один список в моем аккаунте, и я пытаюсь запустить конкурс, в котором я выбираю одного случайного победителя из списка. До сих пор мне удалось получить общее количество участников в списке, и из этого я сгенерировал случайное число, которое будет использоваться в качестве «победителя». Теперь мне нужно найти члена из списка, расположенного в этой позиции, из массива списка членов, но я не уверен, как это сделать.
Это то, что я до сих пор:
include "Mailchimp.php";
/* Load member count */
function mcg_mc_sub_count() {
$MailChimp = new MailChimp('*****');
$list = $MailChimp->call('lists/list');
$total_members .= $list[data][0][stats][member_count];
return number_format($total_members);
}
/* Generate random number */
function mcg_mc_random_number() {
$total_members = mcg_mc_sub_count();
$random_number = rand(1, $total_members);
return $random_number;
}
Я думаю, что на данный момент я должен использовать $MailChimp->call('lists/member-info');
но поскольку у меня есть только случайная позиция, а не идентификатор участника / электронная почта, я не уверен, какие параметры использовать или как это сделать.
Любая помощь оценена, выясняя этот метод или по-другому, спасибо!
Я думаю, что ваша логика верна.
MailChimp не предоставляет API для случайного члена, но вы можете получить список и создать функцию randon в массиве.
Пример:
Начните с использования класса и создания экземпляра с вашим ключом API
use \DrewM\MailChimp\MailChimp;
$MailChimp = new MailChimp('abc123abc123abc123abc123abc123-us1');
Затем перечислите все списки рассылки (с помощью метода get on lists)
$result = $MailChimp->get('lists');
print_r($result);
Таким образом, со списком, вы можете вызвать членов и положить в массив. Затем вы можете использовать некоторую функцию для получения случайного значения в массиве.
$input = array("Member 1", "Member 2", "Member 3", "Member 4", "Member 5");
$rand_keys = array_rand($input, 1);
echo $input[$rand_keys[0]] . "\n";
Refs:
Во-первых, стоит отметить, что вы используете версию API MailChimp, которая будет уйти в конце года. На всякий случай, если это одноразовый скрипт, вот способ сделать это в v2.0, который не требует загрузки всего вашего списка (та же концепция будет работать в v3 с некоторыми небольшими изменениями):
Как только у вас будет количество людей в списке, создайте случайное число. Затем используйте конечная точка списков / участников с start
параметр равен единице меньше, чем ваше случайное число и тому limit
параметр равен 1.
Это должно вернуть точного подписчика, которого вы ищете, не требуя загрузки всего списка.