Как кажется, это реальный край, здесь контур того, что я закончил делать. Я планирую написать сообщение в блоге о моем решении, но он по-прежнему очень груб по краям.
Похоже, что по какой-то странной причине ИИ действительно не имеет возможности делать HTTP-запросы, в то время как большинство других приложений Adobe (CS) могут это сделать. Оказывается, однако, что для облегчения связи между различными приложениями можно использовать библиотеку BridgeTalk (которая поставляется со всеми приложениями CS).
BridgeTalk проходит через приложение Adobe Bridge (как вы могли догадаться) и позволяет асинхронный (и синхронный, используя небольшой трюк) выполнение сериализованного кода.
Мост поставляется с библиотекой веб-сокетов, которая может использоваться для запросов на внешние серверы. Мой скрипт AI теперь проходит через небольшие пользовательские API и HTTP-обертки, и я закончил использование анализатора HTTP из Extendables framework, чтобы обработать ответ. Для простоты я заставляю синхронные запросы.
В качестве примера, API я в конечном итоге создание выглядит примерно так (предполагается, что объект foo
с атрибутом uuid
):
function synchFoo(foo) {
var options = {
path : '/api/foos/' + foo.uuid + 'sync',
format: 'json',
method: 'POST',
host : '127.0.0.1:3000',
data : fooDataToString(foo)
}
var response = bridgeHTTP.sendSynch(options);
return JSON.parse(response.body);
}
Этого подходом является единственным, что я мог бы получить работу (через версии AI) и по-прежнему довольно неустойчивы и поэтому не готовы к публикации. Однако проект вокруг этого решения был оставлен, поэтому не задерживайте дыхание.
FYI, я натолкнулся на это недавно, для асинхронного случая: https://gist.github.com/mericson/6509997 – David
Это ваш пост в блоге? Если нет, это похоже на: http://selfdocumentingcode.blogspot.com/2009/05/using-adobe-bridgetalk-synchronously.html – David
Нет, не мое - извините. Но я считаю, что использовал его в качестве источника во время моей работы. – polarblau