Bem, tenho estado um pouco ausente do blog, mas não por falta de vontade, mas porque além do trabalho tive uma ideia que parecia absolutamente facil, mas que me tirou do sério!!
Como sabem existem muitos programas para publicar artigos no wordpress remotamente como o Live Writer, Flock, Ecto, Elicit ou WB Editor, mas nada se vê em Flex/AIR e então decidi meter mãos à obra e tentar fazer um cliente para escrever no wordpress, que segundo algumas especificaçoes sobre o XML-RPC seria bem facil de fazer…
Ora, “Bem facil” é tudo menos facil, inicialmente usei uma biblioteca do php “xmlrpc”.inc que apesar de alguns problemas lá consegui colocar a funcionar, mas dependia sempre de um servidor que suportasse php e isso não era interessante. Depois de alguns minutos de investigação descobri 2 bibliotecas XML-RPC para o Action Script 3 que foram evoluidas do AS2.
Veja o exemplo online mais a baixo…
O maior problema disto tudo foi mesmo perceber os dados e a forma como eles eram enviados e recebidos o wordpress… e acreditem, não é nada facil… para verem o grau, tentem dar uma vista de olhos no ficheiro xmlrpc.php que está na directoria do vosso wordpress, este é a interface para chamadas XML-RPC (Remote Procedure Call) que usa XML para comunicar com esta interface. O ficheiro em si já é bastante elaborado, e como de esperar usa o “core” do php o que necessita de bastantes conhecimentos para desvendar o seu funcionamento. E por incrivel que pareça o codex do worpress.org pouco ou nada ajudou.
Depois de quase 8h lá consegui o básico, ler as categorias do blog, e escrever um post usando flex e publicando no wordpress nas devidas categorias.
Outro dos grandes problemas ainda é o RichTextEditor que com o seu html miserável simplesmente enviada o conteudo do post para o wordpress e este era apresentado com um tamanho e formatações ilegiveis. Lá tive que usar um filtro para eleminar e substituir alguma da formatação do texto html do richTextEditor.
O projecto têm algumas limitações, como a falta de envio de fotografias (limitação do flash) visto que as fotografias têm que ser enviadas encriptadas em base64 e o flex não deixa abrir um fotografia local na runtime. (pode ser resolvido na versão AIR ou no Flash 10+Flex 4) Alem disto tudo, os links como uma imagem: <img src=…> não funciona porque o parser XML do wordpress não a transforma em imagem, mas sim texto… mais um ponto a resolver.
O projecto foi elaborado com 2 bibliotecas XML-RPC para o Action Script 3, visto que ambas continham alguns problemas na obtenção de determinados dados, por isso usei as duas por uma questão de manter o código intacto. Depois de criar duas class’s para lidar com o código e funções o resultado final pode ser corrido em qualquer browser ou aplicação AIR (brevemente).
Veja a aplicação online
Podem fazer o download do swf aqui e correr no vosso ambiente de trabalho, mas para funcionar em qualquer outro blog necessário um ficheiro crossdomain, que deve ser colocado na raiz do vosso blog, podem fazer o download do crossdomain.xml (.rar) para a raiz do vosso blog
O código fonte ainda não está disponivel, se alguém estiver interessado em participar no projecto envie um email.
p.s. devem efectuar o login primeiro no vosso blog. (usando o endereço do blog sem a / no final, como no exemplo.) Se quiserem testar e não confiarem em mim, criem um utilizador temporario no vosso blog com uma pass temporaria, e assim não correm riscos de pensarem que vos posso roubar a password… =D
p.s.2. Este mesmo post foi escrito atravéz da aplicação Flex exceptuando a imagem que foi colocada posteriormente.









