Campo personalizado no discourseconnect

Estou tentando passar um campo de usuário personalizado ao registrar um usuário.

Aqui está o array que estou usando para registrar…

$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',
        );

O nome do campo é Experience, é um campo de múltipla seleção e uma das opções é Pro
Não estou vendo isso ser transferido? Também tenho um campo personalizado chamado State, que é um campo de texto. Como posso solucionar isso? Não vejo nada sobre o campo personalizado nos logs com o registro do Discourse Connect ativado.

Se você criou esses campos através do Admin → Personalizar → Campos de Usuário, você precisa passá-los como

$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',
        );

Os nomes dos campos não são o nome que você definiu na interface do usuário, mas campos numerados chamados user_field_NÚMERO.

5 curtidas

Isso funcionou, muito obrigado.

Você sabe como preencher um campo de múltipla seleção com vários valores?

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

??

1 curtida

Curiosamente, eu estava pesquisando sobre isso na semana passada e, pelo que parece, não damos suporte a campos de seleção múltipla via payload do DiscourseConnect no momento.

Fiz alguns testes e ele preencherá um campo de múltipla seleção se apenas um valor for enviado.
Não funciona - ‘custom.user_field_1’ => ‘Pro, Newbie’,
Funciona - ‘custom.user_field_1’ => ‘Pro’,

Isso está OK para nossas necessidades. Se esse campo for editável pelo usuário final, ele poderá adicionar outras seleções conforme necessário.

@Falco Muito obrigado pela ajuda

1 curtida

A próxima pergunta é sobre add_groups. Tenho uma lista delimitada por vírgulas, mas ela não está adicionando o usuário aos grupos.

$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
        );

A carga útil relatada é:

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

Nos logs do discourseconnect, vejo:

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

O que parece correto.
Gostaria de adicionar este usuário aos grupos ‘state_sponsor, status_sponsor, elect_sponsor’.

Você precisa remover o espaço entre as vírgulas.

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.