APIs e Microsserviços

15 dez, 2016

Compartilhe Personality Insights com um robô cognitivo do Twitter

Publicidade

O Node-RED simplifica a programação complexa em uma interface do navegador na qual é possível prototipar rapidamente aplicativos conectando dispositivos, APIs e serviços. Os nós Watson e Twitter em aplicativos Node-RED que você cria com o IBM Bluemix estão um passo além, pois removem a necessidade de chaves de API e chamadas complicadas.

Você criará dois aplicativos relacionados que o ajudarão a explorar o serviço Watson insights de personalidade. Os dois apps respondem à questão do que tweets recentes de alguém (pelo menos 50 tweets significativos) dizem sobre a personalidade dessa pessoa.

Primeiro, você criará um web app no qual usuários inserem um identificador de Twitter e o app retorna Personality Insights detalhados (de Watson) com base nos tweets dessa conta. Depois, você incluirá módulos de contexto globais na interface de Node-RED à medida que cria um segundo app que analisa tweets de um usuário e cria uma simples interação com um robô cognitivo do Twitter. O tweet de resposta do robô fornece as 5 principais características do usuário e inclui um link para análise de personalidade mais detalhada de seu web app:

1

A seguir, você também aprenderá como incluir pacotes NPM em uma instância de Node-RED e referenciará essas funções externas dentro dos nós.

Leia: Criando apps com o Node-RED Starter

Leia: Inicie a codificação com Node-RED

Leia: Introdução ao serviço insights de personalidade

Leia: Crie um robô cognitivo do Twitter desenvolvido com Watson

Node-RED efetua o processo de criação – da ideia para o app – de forma rápida e simples, e abre caminho para incluir e alterar nós à medida que suas ideias se expandem.

O que será necessário para desenvolver o aplicativo

O novo programa de associação ao programa de participação developerWorks Premium fornece um passe de acesso completo a ferramentas e recursos de desenvolvimento eficientes, incluindo 500 títulos técnicos principais para desenvolvedores de aplicativos por meio do Safari Books Online, grandes descontos em eventos de desenvolvedores premier, reproduções de vídeos de conferências recentes do O’Reilly etc. Leia sobre o valor do developerWorks Premium ou assista a um vídeo unboxing de Govind Baliga. Inscreva-se hoje.

Execute o aplicativo

Obtenha o código

Etapa 1. Crie a instância de serviço e um app Twitter

Antes de iniciar a criação de seus apps Bluemix, será útil definir o serviço Personality Insights que o app usará e reunir suas credenciais do Twitter. Nesta etapa, você criará o serviço e depois registrará um app com o Twitter para adquirir credenciais que permitirão que seus apps Bluemix coletem tweets.

1 – Efetue login em sua conta Bluemix (ou registre-se para obter uma avaliação gratuita).

2 – No catálogo do Bluemix, selecione o filtro Watson e depois selecione o serviço Watson insights de personalidade.

2

3 – Na caixa de diálogo à direita, mude o nome do serviço para tweetmewatson-PersonalityInsights, deixe o serviço desvinculado e clique em CRIAR.

4 – Em uma nova guia ou janela do navegador, abra a página Twitter Application Management e clique em Criar novo app.

5 – Na janela Detalhes do aplicativo, complete os campos Name, Descriçãoe Website para seu aplicativo. O campo Website requer uma URL para seu app. Use http://yourappname.mybluemix.net, em que yourappname é um nome exclusivo para seu aplicativo (teste a URL em um navegador para garantir que ela seja exclusiva). Você não precisa de uma URL de retorno de chamada, portanto, deixe esse campo em branco.

6 – Aceite o Contrato de desenvolvedor e clique em Criar seu aplicativo Twitter.

7 – Selecione Chaves e tokens de acesso no menu tabulado. Role para baixo para a seção Seu Token de acesso e clique em Criar meu token de acesso:

3

Mantenha as informações do app Twitter abertas em seu navegador ou copie-as para um arquivo de texto; você precisará dessas credenciais na próxima etapa e futuramente na Etapa 5.

Etapa 2. Bifurque e implemente o código

Agora que as credenciais de serviço e do Twitter estão preparadas, é possível simplesmente bifurcar o código de aplicativo da web, atualizar as informações de credenciais no código e então implementar o app – a partir do Bluemix DevOps Services.

1 – Na seção “O que será necessário para desenvolver o aplicativo” deste artigo, clique no botão Obtenha o código.

2 – Na página de visão geral do projeto tweetmewatson no Bluemix DevOps Services, clique em BIFURCAR PROJETO, no canto superior direito.

3 – Na caixa de diálogo, forneça ao app o nome exclusivo que você escolheu na etapa 2, marque a caixa de seleção Tornar isso um projeto Bluemix e clique em CRIAR.

À medida que você trabalha no editor de códigos, o Bluemix DevOps Services salva periodicamente, assim, não é preciso se preocupar caso fique desconectado acidentalmente…

4 – Na página de visão geral de seu projeto recém-criado do Bluemix DevOps Services, clique no botão CÓDIGO DE EDIÇÃO para abrir o editor.

5 – Clique no arquivo manifest.yml. Mude a propriedade host e a name de tweethmewatson para o nome fornecido para seu aplicativo (se você usou um nome para a instância de serviço Watson Personality Insights em vez de tweetmewatson-PersonalityInsights, substitua tweetmewatson-PersonalityInsights pelo nome usado).

6 – Abra app.js no editor.

7 – Atualize a variável tweet com a chave do consumidor, segredo do consumidor, token de acesso e segredo do token de acesso com suas credenciais do Twitter (na guia Abrir navegador ou arquivo de texto).

4
8 – Clique no botão de seta próximo ao nome do app para implementar o app:

5

Pode levar vários minutos até a implementação de seu aplicativo.

9 – Quando a implementação estiver concluída, clique no símbolo Abrir a URL do aplicativo 6 para abrir o aplicativo Bluemix.

10 – Teste o app inserindo um identificador do Twitter e clicando em Analisar para visualizar os insights sobre a personalidade da pessoa:

7

O arquivo demo.js no diretório público de seu projeto Bluemix DevOps Services inclui uma seção chamada getURLVariable e extrai um nome de usuário a partir da URL de seu app da web. É o código de conexão entre os dois apps que permite que participantes do Twitter visualizem insights de personalidades mais detalhados.

Até aqui, você criou um web app independente e funcional. No lembrete deste artigo, você usará Node-RED para criar um robô do Twitter que permite que usuários do Twitter obtenham automaticamente Personality Insights do Watson. A saída do robô inclui um link para uma análise detalhada gerada pelo web app; caso contrário, o web app e o app do robô funcionarão relativamente de forma independente um do outro.

Etapa 3. Crie o robô

Agora você usará o texto padrão de Node-RED para criar um aplicativo Node.js básico e depois ligará sua instância existente do Personality Service a ele.

1 – Efetue login em sua conta do Bluemix (se ainda não estiver conectado).

2 – No catálogo do Bluemix, selecione o texto padrão do Node-RED Starter.

3 – Deixe o título SDK for Node.js selecionado. Na caixa de diálogo à direita, forneça ao seu app um nome exclusivo (diferente do nome do aplicativo da web já criado) e clique em CRIAR.

Dependendo do tamanho do aplicativo, pode levar alguns minutos ou segundos até que seu app comece a execução.

4 – Vá para o painel do Bluemix e selecione seu app. Aguarde até que a seção FUNCIONAMENTO DO APP na parte superior direita mostre que seu app está sendo executado. Em seguida, clique em LIGAR UM SERVIÇO OU API.

5 – Selecione o serviço Watson Personality Insights que você criou na Etapa 1 (tweetmewatson-PersonalityInsights) e clique em ADD para disponibilizá-lo para este aplicativo. Remonte o app quando solicitado.

6 – Quando seu app estiver executando novamente, retorne ao painel do Bluemix e abra a página de visão geral do app.

7 – No serviço recém-ligado insights de personalidade, clique em Mostrar Credenciais. Anote os valores nome de usuário e password, que precisarão em uma etapa posterior.

Etapa 4. Obtenha o módulo twit

Antes de começar a usar a interface Node-RED, você precisará de um conjunto mais complexo de credenciais do que o nó básico do Twitter nos fornecimentos de Node-RED. Siga estas etapas para obter twit, um cliente de API do Twitter para Node.js:

1 – No Bluemix, clique em INCLUIR GIT na parte superior direita da página de visão geral do app:

8

2 – Certifique-se de que a caixa de seleção para Preencher o repositório com o pacote de aplicativo iniciador e ativar Delivery Pipeline (Criar e implementar) está selecionada e clique em CONTINUAR:

9

O Bluemix levará alguns instantes para criar seu repositório Git no Bluemix DevOps Services.

3 – Depois que a mensagem de êxito for exibida, clique em FECHAR.

4 – Clique na URL GIT localizada agora no canto superior direito da página de visão geral no Bluemix (caso a URL não seja exibida, atualize a página e tente incluir Git novamente; se você não vir a URL, atualize a página e tente incluir Git novamente).

5 – Em Bluemix DevOps Services, clique em CÓDIGO DE EDIÇÃO em seu projeto recém-criado para abrir o editor de código.

6 – Abra o arquivo package.json no editor e inclua esta linha nas dependências para incluir os módulos twit:

“twit”:”*”,

10

Para os módulos NPM que não estão empacotados como nós, a configuração functionGlobalContext permite tornar os recursos do módulo disponíveis para todos os nós de função no fluxo.

7 – Abra bluemix-settings.js no editor. Inclua o módulo twit para que a linha para a configuração functionGlobalContext (na linha 52 ou perto dela) assemelhe-se à seguinte linha de código:

functionGlobalContext:
{twitModule:require(‘twit’)},

11

8 – Realize push de atualizações locais para a ramificação remota clicando no ícone de repositório Git 12 na barra de ferramentas à esquerda.

9 – Para aplicar todas as atualizações do app, marque a caixa de seleção Selecionar tudo e insira um comentário sobre as atualizações:

13

10 – Clique em Confirmar para realizar o push das mudanças no diretório de saída:

14

11 – Para o diretório de saída na caixa de diálogo à esquerda, clique em Realizar o push para enviar as mudanças para a ramificação remota e iniciar uma implementação no Bluemix:

15

12- Clique em Criar e implementar na parte superior direita da página para ver o progresso dos estágios de criação e implementação. Para visualizar mais detalhes sobre a implementação, clique em Visualizar logs e histórico.

Você acabou de concluir as atualizações do Bluemix DevOps Services. Agora você está pronto para trabalhar no Node-RED.

Etapa 5. Importar e atualizar o fluxo no Node-RED

Agora que você configurou o ambiente e implementou um app básico, precisa obter um fluxo no Node-RED. Criar um fluxo do zero envolveria escolher os nós corretos para uso e criar código JavaScript para obter os dados fora do Twitter. Mas é possível ignorar esse processo oportuno e simplesmente importar um fluxo existente do projeto tweetmewatson no Bluemix DevOps Services. Esta etapa o orienta pela importação de um fluxo e configuração de autenticação com os nós do Twitter. Depois, você testará o app.

1 – Na seção “O que será necessário para desenvolver o aplicativo” deste artigo, clique no botão Obtenha o código.

2 – No código-fonte tweetmewatson, selecione o diretório com nó e abra tweetmewatsonflow.txt. Copie o conteúdo do arquivo para sua Área de transferência.

3 – No Bluemix, marque FUNCIONAMENTO DO APP na página de visão geral do app para confirmar que seu app esteja executando (e reinicie se necessário). Em seguida, clique na rota do app:

16

4 – Em seu app em execução, clique no botão Ir para o editor de fluxo de Node-RED.

5 – Em sua área de trabalho de Node-RED, clique no botão de menu de hambúrguer e selecione Importar > Área de transferência:

17

6 – Cole o conteúdo de tweetmewatsonflow.txt na janela Importar nós:

18

7 – Clique em Ok.

8 – Clique em qualquer lugar no meio da área de janela da área de trabalho para descartar o fluxo na área de trabalho. Agora você tem o fluxo completo do app, que está pronto para customização, incluindo suas informações do Twitter.

9 – Clique duas vezes no nó de entrada do Twitter (chamado de Menção de tweet) na extrema esquerda do fluxo para abrir a caixa de diálogo Editar twitter no nó:

19

Esse nó simplifica o processo de autenticação com Twitter para monitoramento básico de tweets. Clique no ícone de lápis à direita do campo Twitter. O Node-RED agora percorrerá a autenticação no Twitter.

10 – Clique no serviço Clique aqui para autenticar com o Twitter ) e clique em Autorizar app para autorizar o Node-RED a acessar sua conta do Twitter. Quando aparecer a mensagem “Autorizado. Você pode fechar esta janela e retornar ao Node-RED”, retorne ao Node-RED e clique em Incluir para incluir um novo usuário.

11 – Na seção for, substitua @WhatsMyBig5 por seu identificador do Twitter e substitua #tweetmewatson por uma hashtag exclusiva, mas divertida. O app varrerá todos os novos tweets públicos que correspondem a esses dois termos. Também é possível usar apenas o identificador do Twitter ou apenas a hashtag. Clique em Ok.

20

12 – No fluxo de Node-RED, abra o nó de função Obter tweets usando twit. Copie as credenciais do app Twitter que você criou na Etapa 1 nas linhas corretas da definição de variável tweet. Lembre-se de manter aspas simples no texto. Clique em Ok para fechar a caixa de diálogo de edição.

21

13 – O app robô envia (junto com os 5 principais traços) um link para o web app independente, anexando o identificador do Twitter do usuário para a URL do app da web. Para atualizar a URL com a rota de seu app, abra o nó Corpo do tweet e localize http://tweetmewatson.mybluemix.net?user={{handle}}. Substitua tweetmewatson pelo nome do aplicativo da web criado na Etapa 2.

14 – Edite o nó Resposta do tweet , selecione seu nome de usuário na lista e clique em OK:

22

O Node-RED cria um nó de credencial para armazenar esses dados, assim você precisará configurar uma conta do Twitter apenas uma vez.

15 – Abra o projeto Watson insights de personalidade. Insira o nome de usuário e senha para o serviço Personality Insights que você anotou no final da Etapa 3.

16 – Clique no serviço Implemente na parte superior da página. Depois, mude para a guia depurar.

Etapa 6: Teste seus apps

1 – No painel do Bluemix, verifique se ambos os apps estão executando (e reinicie-os se necessário).

2 – Envie um tweet que inclua o identificador ou hashtag escolhida na Etapa 5.

3 – Na guia de depuração, você verá a saída bruta. No Twitter, uma resposta de seu app robô do Twitter deve ser exibida.

Conclusão

Neste artigo, você aprendeu como bifurcar um projeto Bluemix DevOps Services e duas formas diferentes de implementar um app a partir do Bluemix DevOps Services. Você também aprendeu a importar um fluxo em um aplicativo Node-RED, incluir um módulo em uma instância de Node-RED, fazer referência ao módulo dentro do contexto global, acessar o serviço Watson Personality Insights sem inserir suas credenciais de API e usar os nós do Twitter para atender e criar respostas.

O Node-RED efetua o processo de criação – da ideia ao app – rápido e simples e abre caminho para incluir e alterar nós à medida que suas ideias se expandem. Aqui foi mostrado apenas o uso dos serviços Watson; é possível integrar facilmente uma dezena de outros nós de Watson em seu fluxo de Node-RED para criar uma interação mais complexa.

bluemixbluemix01