Mailchimp: получить случайную информацию о пользователе

Это мой первый раз, когда я использую 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'); но поскольку у меня есть только случайная позиция, а не идентификатор участника / электронная почта, я не уверен, какие параметры использовать или как это сделать.

Любая помощь оценена, выясняя этот метод или по-другому, спасибо!

0

Решение

Я думаю, что ваша логика верна.
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:

0

Другие решения

Во-первых, стоит отметить, что вы используете версию API MailChimp, которая будет уйти в конце года. На всякий случай, если это одноразовый скрипт, вот способ сделать это в v2.0, который не требует загрузки всего вашего списка (та же концепция будет работать в v3 с некоторыми небольшими изменениями):

Как только у вас будет количество людей в списке, создайте случайное число. Затем используйте конечная точка списков / участников с start параметр равен единице меньше, чем ваше случайное число и тому limit параметр равен 1.

Это должно вернуть точного подписчика, которого вы ищете, не требуя загрузки всего списка.

0

По вопросам рекламы [email protected]