Personalização do Cartão de Chat – Operadores
Em alguns cenários, pode surgir uma necessidade em que diferentes usuários possam precisar exibir diferentes cartão de chat, que podem ser baseadas em alguns atributos. Para habilitar esses cenários, o Kaizala fornece Operadores, que permite que os Criadores de Ações personalizem o chat cartão exibições para a mesma instância de Ação de forma diferente para diferentes cenários/usuários.
Vamos dar um exemplo:
Digamos que queremos mostrar a exibição cartão diferente de remetente do que seus receptores. Usando operadores, podemos alcançar esse cenário facilmente, abaixo está a exibição de chat personalizada JSON para isso:
{
"schemaVersion": 3,
"schema": {
"type": "container",
"layout": "vertical",
"children": [
{
"type": "text",
"string": "Title: ${Form.title}"
},
{
"type": "text",
"string": "Who am I: ${Operators.custom_text}"
}
]
},
"Operators": {
"custom_text": {
"operator": "conditional_value",
"condition": {
"operator": "is_it_me",
"value": {
"operator": "property_value",
"property": "creator",
"src": "local"
}
},
"value": "Sender",
"default": "Receiver"
}
}
}
Aqui você pode observar que o operador "conditional_value" obtém o valor booliano do operador aninhado "is_it_me" que aninhado ainda mais com o operador "property_value". Da mesma forma, isso pode ser facilmente estendido a qualquer um desses cenários, mesmo um complexo. Além disso, a seguinte entrada deve ser adicionada ao manifesto do pacote: ActionStoreSchema: "". Para obter mais detalhes, consulte esquema JSON do manifesto do pacote .
Lista de operadores com suporte:
Observação : as variáveis x, y, z usadas nos exemplos de sintaxe podem ser valores simples ou resultado retornado por operadores aninhados
Nome do operador | Nome do Parâmetro | Tipo de parâmetro | Funcionalidade | Sintaxe | Sintaxe minimizada | Observação |
---|---|---|---|---|---|---|
Valor condicional | 1. Condição 2. Valor 3. Padrão | 1. Boolean 2. Valor Json 3. Valor Json | Esse operador é usado para retornar um valor especificado, se uma condição definida for verdadeira. Se a condição for falsa, ela retornará o falso. | {"operator": "conditional_value","condition": x",value": { y },"default": { z }} | [ "conditional_value", X, Y, Z] | |
Igual a | 1. Valor 2.Valor | 1. Cadeia de caracteres 2.Cadeia de caracteres | Esse operador retornará true se os valores fornecidos (valor1, valor2) forem iguais. Caso contrário, ele retorna falso | {"operator": "eq","value1": x"value2": y } | ["eq", x, y] | |
FormatProfileName | 1. Propriedade 2. Src | 1. String 2.PropertyType | Obtém a Propriedade do Src 'PropertyType' e formata a lista de userIds como:'<Nome do Usuário 1> & n mais' n é o número de usuários presentes na lista – 1 | {"operator":"format_profile_names","property": x, "src":P ropertyType} | ["format_profile_names", PropertyType, x] | PropertyType{ local,server} 1. Esse operador pressupõe que a propriedade x fornecida retorna a matriz de userIds 2. UserName1 será você se o usuário conectado atual estiver presente na lista de userIds. |
FormatString | 1. Formatar 2. Agrs | 1. Cadeia de caracteres 2.Matriz de argumentos esperados pela cadeia de caracteres Formatar | Esse operador permite formatar uma cadeia de caracteres usando especificadores de formato.Esse operador é igual a qualquer outro operador de cadeia de caracteres de formato presente no cpp ou java | {"operator": "format_string","format": x"args": [y, z ...]} | ["format_string", x, [y, z ...]] | X pode conter especificadores como %s, %d etc e os operadores esperam que os argumentos estejam presentes do mesmo tipo na mesma ordem Para por exemplo, String pode ser{"operador": "format_string","format": "Meu nome é %s e minha idade é %d", "args": [y, z]}Onde y é uma variável de cadeia de caracteres e z é um inteiro |
IsCurrentUser | 1.Valor | 1. uuid Compara o uuid fornecido (UserId) com o uuid (UserId) do usuário conectado atual. Ele retorna true se corresponder e retornar false caso contrário | {"operator": "is_it_me","value": x} | ["is_it_me"x] | ||
JSONPathValue | 1. 1. Entidade 2.Path | 1.EntityType 2.Caminho json válido | Busca o valor que reside na chave na entidade json do tipo determinado. Ele retorna o primeiro valor encontrado no caminho. | {"operator": "jsonpath_value","entity": EntityType,"path": ValidJsonPath} | ["jsonpath_value", EntityType, ValidJsonPath] | {"operator":"jsonpath_value","entity": Message,"path": "$.. SenderName"}"$.." Atravesse recursivamente"$". Percorrer apenas o 1º nível de entidade |
MessageConversationName | 1. Valor | 1. messageId | Retorna o nome da conversa ao qual a mensagem com determinada messageId pertence. | {"operator": "message_conversation_name","value": x} | ["message_conversation_name",x] | |
MessageCreationTime | 1. Valor | 1. messageId | Retorna a cadeia de caracteres de carimbo de data/hora legível humano para o carimbo de data/hora de criação da mensagem com a mensagem dadaId | {"operator": "message_creation_time","value": x} | ["message_creation_time", x] | |
ProfileName | 1. id | 1. uuid | Retornar o nome de exibição do usuário quando uuid (UserId) for fornecido | {"operator": "profile_name","id": x} | ["profile_name", x] | |
Propertyvalue | 1.Src 2.Property | 1.PropertyType 2.String | Obtém a propriedade do Src PropertyType | {"operator": "property_value","property": x"src": PropertyType} | ["property_value", PropertyType, x] | PropertyType{local,server} |
AdditionOperation | 1. Arg1 | 1. Matriz de argumentos necessários pela operação de adição | Ele avalia todos os valores dentro dos args e os adiciona | {"operator":"addition","args":[{"operator".},2,4]} | ["adição", [1, 2, 3]] | Certifique-se de avaliar args que resultam em tipo flutuante |
SubtractionOperation | 1.Arg1 2.Arg2 | 1. Argumento do qual subtrair2. Argumento que precisa ser subtraído | Ele avalia os valores dentro do args e subtrai o segundo do primeiro | {"operator":"subtraction", "arg1":{"operator".}, "arg2":2} | ["subtração", [4, 3]] | Certifique-se de avaliar args que resultam em tipo flutuante |
MultiplicationOperation | 1. Arg1 | 1. Matriz de argumentos necessários pela operação de multiplicação | Ele avalia todos os valores dentro dos args e os multiplica | {"operator":"multiplication", "args":[{"operator".},2,4]} | ["multiplicação", [1, 2, 3] | Certifique-se de avaliar args que resultam em tipo flutuante |
DivisionOperation | 1. Arg12. Arg2 | 1. Argumento do qual dividir 2. Argumento que precisa ser dividido | Ele avalia os valores dentro do args e divide o segundo do primeiro | {"operator":"division","arg1":{"operator"..}, "arg2":2} | ["division", [4, 3]] | Certifique-se de avaliar args que resultam em tipo flutuante |
ModuloOperation | 1. Arg1 2. Arg2 | 1. Argumento do qual dividir 2. Argumento que precisa ser dividido para obter o restante | Ele avalia os valores dentro do args e divide o segundo do primeiro e retorna o restante | {"operator":"modulo","arg1":{"operator".},"arg2":2} | ["modulo", [4, 3]] | Certifique-se de avaliar args que resultam em tipo flutuante |
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de