Flex projet - Speller / correcteur orthographique


Je suis en train de développer un projet en Flex qui est la création d'un correcteur d'orthographe, sans recours à un fichier de dictionnaire (mots), mais essayant de disséquer le Google Web Toolkit et de vraiment comprendre comment votre système qui est incorporé dans la barre d'outils pour le firefox.

Au départ, j'ai pensé qu'il serait facile, parce qu'il pensait qu'il y aurait une API pour Flash / Flex Google le vérificateur d'orthographe, mais moi triché, et à juste titre!

Je suis allé à la recherche de l'API de Google et de son code (principalement Java et / ou JS et PHP) et le plus difficile était de trouver le script ou le cadre qui permet la vérification de texte / mot dans les dictionnaires de Google, c'est alors que j'ai découvert un drôle de chose, l'adresse https: / / www.google.com/tbproxy/ mélangés dans le milieu du code, directement clair que cette adresse n'est pas disponible (ou prévue), après quelques minutes, j'ai trouvé le "sort? lang = fr "Que, lorsque vous ajoutez de l'adresse J'ai" répondu ". Il a découvert la poudre à canon!

Après que ce serait facile, je pensais que ... mais aggravée depuis l'adresse n'a pas accepté les paramètres par URL (GET / POST) ... Alors, si le serveur je suis retourné XML, vous pourriez peut-être envoyer POST XML comme une réponse .. Je suis allé à la recherche de nouveaux GWT (Google Web Toolkit) et il a rencontré les instructions nécessaires XML qui sera envoyé ..

Je suis allé au Flex et je n'ai <mx:HTTPService> de se connecter à cette adresse, et qui n'est pas travaillé ...

Les véritables problèmes ont commencé quand j'ai mis ma demande en ligne, un véritable casse-tête:

Erreur:

[RPC Fault faultString = "erreur lors de l'accès de sécurité url" faultCode = "Channel.Security.Error" faultDetail = "Destination: DefaultHTTP"]

C 'était quoi? J'ai essayé avec le URLRequest, / URLVariables et une autre erreur, erreur SandBox de sécurité, après beaucoup de recherche, j'ai constaté le problème est encore pire que de simples erreurs, ou POST code sur le serveur.

Le gros problème est que, en fait, le Flash ne laisse pas accès à une adresse à l'extérieur directement, par exemple les aliments pour animaux ou de l'API AdWords. Il semble que le problème est le même bac à sable / navigateur. Ce problème serait si Google contornável facilement disponible à partir de votre serveur une crossdomain.xml permettant l'accès direct, mais il semble que Google insiste sur rendre la vie difficile pour les programmeurs Flex / Action Script.

Eh bien, il a été une impasse .. Que faire?

J'ai commencé à réfléchir sur la façon de résoudre ce problème, a fait plusieurs suggestions à l'usage de ce crossdomain.xml, qui a fini par être hors de son contexte, une fois qu'il avait d'autres options? peut-être utiliser un proxy dans le Flex HTTPService, comme dans: Adobe Flex - Définir un serveur mandataire, mais cette hypothèse mettre hors de question pour le moment.

A partir de la possibilité de faire un script PHP qui permet la communication entre Google et Flex, il est donc possible dans certains autres exemples de l'API Google.

Après quelques minutes, a donné à un autre problème, d'utiliser le fsockopen (url: port); remarqué que Google n'a tout simplement pas me répondre, mais pourquoi?

Pour résumer:

ouvre le socket (il ouvre), a envoyé les données:

$ Data = "<post dans XML>";

$ Envoyer = "POST / tbproxy / spell? Lang HTTP/1.1 \ r \ n";
$ Envoyer .= "Host: www.google.com \ r \ n";
$ Envoyer .= "Content-Length:". strlen ($ data). "\ R \ n";
$ Envoyer .= "Content-Type: application / x-www-form-urlencoded \ r \ n";
$ Envoyer .= "Connection: Close \ r \ n \ r \ n";

Je ne retournent pas rien.

Une fois de plus à l'arrière et il a réalisé que le problème était de $ envoyer = "POST / tbproxy / spell? Lang HTTP/1.1 \ r \ n"; HTTP/1.0 devrait envoyer au lieu de 1,1. De là, il a été un jeu d'enfant :)

De travail définitif, appeler mon script PHP de Flex, envoyer votre demande de correction et de recevoir des données en Flex, depuis lors, de trouver les mots avec des erreurs dans le texte et apporter les corrections nécessaires.

Tout cela semble très simple, mais a passé une journée dans le système de communication avec Google.

Voici brièvement mis le résultat final :)

version pdf temporairement indisponible.
Laissez un commentaire ou laisser un Trackback

Laisser un commentaire

Votre e-mail n'est jamais publié ou partagé. Les champs obligatoires sont marqués d'un *