Jay_Moore
(Jay Moore)
22.Февраль.2022 19:31:14
1
Я пытаюсь передать пользовательское поле при входе пользователя.
Вот массив, который я передаю:
$parameters = array(
'nonce' => $nonce,
'external_id' => 'jay',
'email' => 'bugsbunny@betaclub.org',
'username' => 'bugsbunny@betaclub.org',
'name' => 'Bugs Bunny',
'add_groups' => 'state_sponsors',
'custom.experience' => 'Pro',
'custom.state' => 'FL',
);
Имя поля — Experience, это поле с множественным выбором, и один из вариантов — Pro. Я не вижу, чтобы оно передавалось? Также у меня есть пользовательское поле State, которое является текстовым полем. Как мне отладить это? В логах при включенном логировании Discourse Connect я ничего не вижу о пользовательском поле.
Falco
(Falco)
22.Февраль.2022 19:40:24
2
Если вы создали эти поля через Администрирование → Настройка → Поля пользователей, вам нужно передать их следующим образом:
$parameters = array(
'nonce' => $nonce,
'external_id' => 'jay',
'email' => 'bugsbunny@betaclub.org',
'username' => 'bugsbunny@betaclub.org',
'name' => 'Bugs Bunny',
'add_groups' => 'state_sponsors',
'custom.user_field_1' => 'Pro',
'custom.user_field_2' => 'FL',
);
Имена полей не совпадают с теми, что вы задали в интерфейсе; это нумерованные поля с именами user_field_НОМЕР.
Jay_Moore
(Jay Moore)
22.Февраль.2022 20:02:57
3
Сработало, большое спасибо.
Вы знаете, как заполнить поле множественного выбора несколькими значениями?
‘custom.user_field_1’ => ‘Pro, Newbie’,
??
Falco
(Falco)
22.Февраль.2022 20:36:41
4
Любопытно, я изучал это на прошлой неделе, и, судя по всему, мы в настоящее время не поддерживаем поля с множественным выбором через полезную нагрузку DiscourseConnect .
Jay_Moore
(Jay Moore)
24.Февраль.2022 12:39:05
7
Провёл тестирование: поле множественного выбора заполняется, если отправлено только одно значение.
Не работает — ‘custom.user_field_1’ => ‘Pro, Newbie’,
Работает — ‘custom.user_field_1’ => ‘Pro’,
Для наших задач это приемлемо. Если это поле редактируемо конечным пользователем, он сможет добавлять другие значения по мере необходимости.
@Falco Большое спасибо за помощь.
Jay_Moore
(Jay Moore)
24.Февраль.2022 14:16:26
8
Следующий вопрос касается add_groups. У меня есть список, разделённый запятыми, но пользователь не добавляется в группы.
$parameters = array(
'nonce' => $nonce,
'external_id' => $sponsor['spid'],
'email' => $sponsor['email'],
'username' => $sponsor['email'],
'name' => $fullname,
'add_groups' => 'state_sponsor, status_sponsor, elect_sponsor',
'location' => $location,
'custom.user_field_1' => $experience, //experience - Newbie, Less than 5, Pro, Old Timer
'custom.user_field_2' => $club['name'].' ('.$sponsor['new_id'].')', //school name with clubid
'custom.user_field_4' => $division, //division
);
Отправленная полезная нагрузка:
add_groups=state_sponsor%2C+status_sponsor%2C+elect_sponsor
email=xxxx%40spart1.org
external_id=xxxx
name=Angela+Moore
nonce=xxxx
username=xxxx%40spart1.org
location=Landrum%2C+SC
custom.user_field_1=Pro
custom.user_field_2=Landrum+Middle+School+%28JSC0081%29
custom.user_field_4=Junior
В логах discourseconnect я вижу:
add_groups: state_sponsor, status_sponsor, elect_sponsor
admin:
moderator:
avatar_force_update:
avatar_url:
bio:
card_background_url:
email: xxxx@spart1.org
external_id: xxxxx
groups:
locale:
locale_force_update:
logout:
name: Angela Moore
nonce: xxxx
profile_background_url:
remove_groups:
require_activation:
return_sso_url:
suppress_welcome_message:
title:
username: xxxx@spart1.org
website:
location: Landrum, SC
Это выглядит правильно.
Я хочу добавить этого пользователя в группы ‘state_sponsor, status_sponsor, elect_sponsor’.
Falco
(Falco)
24.Февраль.2022 17:54:38
9
Вам нужно убрать пробел между запятыми.