Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Nota
titleAtenção

Grande parte dos eventos possuem WKUser para identificar o usuário. Esse ao utilizar a função de substituto, onde um usuário pode substituir outro, irá sempre retornar o usuário que está no momento utilizando o sistema.

Exemplo: Ana colocou Bruno como seu substituto, Bruno acessa o sistema e faz uma ação em nome da Ana, sistema irá retornar o código do usuário Bruno nos eventos que usam WKUser.

...

Nota
titleAtenção

Em todos os eventos é possível realizar chamadas para os serviços diponíveis na API pública. Acesse aqui nosso guia de Consumo da api pública em eventos.

Eventos do tipo "Before"

De uma forma geral, os eventos do tipo before são executados antes que a ação que disparou o evento seja efetivada, desta forma é possível filtrar os dados que são passados ou até mesmo evitar que a ação executada seja concluída.

...

SocialFollowEventVO
Propriedade / MétodoDescriçãoTipo / Retorno
getSocial()Social que seguiráSocialEventVO
getFollowed()Social que está sendo seguidoSocialEventVO

Consumo da API Pública em Eventos

A partir dos eventos é possível executar ações no Fluig.

As ações disponíveis são as mesmas da API Pública (chamadas REST) e são disparadas através de um objeto consumer.

 

Utilizando um objeto consumer

Para obter uma instância de consumer é necessário solicitar ao objeto de ambiente oauthUtil executando o método getNewAPIConsumer ou getNewAPIConsumerAsCurrentUser.

  • getNewAPIConsumer

Utilizada para solicitar um objeto de acesso com autenticação por usuário da aplicação.

  • getNewAPIConsumerAsCurrentUser

Utilizada para solicitar um objeto de acesso com autenticação pelo usuário logado.

IMPORTANTE: Para poder utilizar esse método você deve marcar na página do usuário aplicativo a opção "Pode agir como usuário logado em eventos customizados"

O usuário da aplicação utiliza o modo Impersonate como forma de identificação na autenticação do acesso. Esse modo Impersonate só é permitido através dos eventos customizados e não fora dele.

Para ambos os métodos descritos acima, utilizar os seguintes parâmetros:

  • Consumer Key
  • Consumer Secret
  • Token Access
  • Token Secret

Essas informações de parâmetros são fornecidas pelo Fluig em Painel de Controle, na aba WCM, item Oauth Provider.

 

O método get

Esse método realiza uma chamada GET na API Publica, passando como argumento uma URI válida da API (ver documentação da API).

Ex: consumer.get("/public/social/community/comunidade1");

 

O método post

Esse método realiza uma chamada POST na API Publica, passando como argumento uma URI válida da API (ver documentação da API) e os dados enviados em formato JSON.

Ex: consumer.post("/public/social/post/create/with/upload", "{\"text\":\"Post criado via evento\",\"visibility\":\"PUBLIC\"}");

 

Exemplo com usuário de aplicação

Nesse exemplo, a mensagem "Post criado via evento" é postada no mural

Bloco de código
languagejs
function beforeSocialPost(companyId, vo) {
    if (vo.getSocial().getType() == "USER" && vo.getUser() != "admin") {
        var consumer = oauthUtil.getNewAPIConsumer("my_app_key", "my_app_secret",
                        "605da7f2-d087-4f4b-903e-486df9563956",
                        "2b192950-fe0c-4211-a4bf-5962c18432d85c077dfb-aa51-45a0-ab43-822a680070ab");
        var userData = JSON.parse(consumer.get("/public/social/user/" + vo.getUser()));
        if (userData.numberFollowers == 0) {
            throw "Voce deve ser seguido por alguem para poder postar em sua timeline.";
        }
    }
}

 

Exemplo com usuário logado

Bloco de código
languagejs
function afterDocumentPublisher(){
    var doc = getValue("WKDocument");
    var user = getValue("WKUser");

    var msgPost = "Novo documento: "+ doc.getDocumentId() + " - Versão: "+ doc.getVersion();
    log.info(msgPost);

    var jsonContent = "{\"text\":\"" + msgPost + "\",\"visibility\":\"PUBLIC\"}";
    log.info(jsonContent);

    var consumer = oauthUtil.getNewAPIConsumerAsCurrentUser("myapp", "myappsecret", "32718929-568b-4a64-9f67-bbeadf4c1fc3",
            "eff7b746-384b-43ba-be3a-aed14da822a4b8352de0-62be-456e-a0d8-ab5c00a745bc");
    consumer.post("/public/social/post/create", jsonContent);
}

...


Atualização do Analytics

Definição

...