Пользовательское поле в discourseconnect

Я пытаюсь передать пользовательское поле при входе пользователя.

Вот массив, который я передаю:

$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 я ничего не вижу о пользовательском поле.

Если вы создали эти поля через Администрирование → Настройка → Поля пользователей, вам нужно передать их следующим образом:

$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_НОМЕР.

Сработало, большое спасибо.

Вы знаете, как заполнить поле множественного выбора несколькими значениями?

‘custom.user_field_1’ => ‘Pro, Newbie’,

??

Любопытно, я изучал это на прошлой неделе, и, судя по всему, мы в настоящее время не поддерживаем поля с множественным выбором через полезную нагрузку DiscourseConnect.

Провёл тестирование: поле множественного выбора заполняется, если отправлено только одно значение.
Не работает — ‘custom.user_field_1’ => ‘Pro, Newbie’,
Работает — ‘custom.user_field_1’ => ‘Pro’,

Для наших задач это приемлемо. Если это поле редактируемо конечным пользователем, он сможет добавлять другие значения по мере необходимости.

@Falco Большое спасибо за помощь.

Следующий вопрос касается 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’.

Вам нужно убрать пробел между запятыми.