Flex 4: использовать API Google в RIA без кода на стороне сервера? - PullRequest
0 голосов
/ 26 марта 2010

Просто чтобы подтвердить то, что, как мне кажется, я понимаю из чтения об использовании API Google в RIA (FLEX 4 и ActionScript), нет способа подключиться к API блоггера, например, напрямую из RIA из-за файла crossdomain.xml от Google, верно ?

Поэтому, если я хочу использовать их API-интерфейсы для получения некоторых данных, таких как содержимое моего почтового ящика или список публикаций в моем блоге, у меня должен быть некоторый код, работающий на стороне сервера, и RIA просто использует этот код как httpservice для сбора данных из Google.

Или, может быть, я неправильно понял?

1 Ответ

1 голос
/ 26 марта 2010

нет, вы правы. конечно, есть обходные пути темной магии:

  1. встроить подписанный Java-апплет. если пользователь принимает сертификат, он имеет практически любое разрешение. привязать порт и использовать его для связи между flash и java (через TCP). обязательно ответьте на запрос файла политики, в противном случае Flash автоматически закроет соединение.

  2. получить DNS-сервер. когда пользователь открывает сеанс, создайте поддомен, такой как sessionID.yourdomain.tl с очень коротким TTL, который сопоставляется с вашим собственным сервером. первый запрос будет для дополнительного файла SWF, "прокси". после этого запроса переназначьте поддомен на сервер Google. таким образом, флеш-плеер обманом воспринимает прокси и целевой API как имеющие одинаковое происхождение. убедитесь, что прокси-сервер разрешает доступ из контейнера и создает небольшой интерфейс, который позволяет вашему приложению отправлять запросы URL через прокси.

редактирование:

ну, первый подход действительно возможен: http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide/rsa_signing.html. Я полагаю, что легче реализовать легкий протокол TCP между Java и Flash, но альтернативой было бы сделать flash-> Java-коммуникацию основанной на HTTP. Не знаю, есть ли какие-либо библиотеки для обработки HTTP-запросов в Java.

Что касается второго подхода, вы можете использовать BIND с DLZ . как только вы его запустите, изменения БД должно быть достаточно.

Тем не менее наличие промежуточного сервера является самым безопасным решением. хотя, возможно, вы захотите учесть, что некоторые API Google ограничены на ключ в день на IP . Вы должны проверить это, чтобы избежать проблем. Несколько лет назад мы столкнулись с этим при использовании API-интерфейсов Google для геокодирования.

...