O Adobe LiveCycle Collaboration Service possui em seu SDK, exemplos de integração com as principais linguagens de programação web do mercado como PHP, Java, Python, etc.
Na documentação da Adobe, é recomendado o uso do AMFPHP ou o PHP puro mesmo, mas nada impede de usar tranquilamente em conjunto com o ZendFramework (usando ZendAMF)
Ryan Stewart escreveu dois artigos mostrando a implementação com PHP e REST.
Uma observação sobre o artigo de Ryan, no Flex 4, Adobe passou a usar o swfobject, então o modo de pegar os parâmetros via URL e passar para o SWF fica desse modo:
[JAVASCRIPT]
var xiSwfUrlStr = “playerProductInstall.swf”;
var flashvars = {};
{
flashvars.roomURL = swfobject.getQueryParamValue(“roomURL”);
flashvars.authToken = swfobject.getQueryParamValue(“authToken”);
}
var params = {};
[/JAVASCRIPT]
No SDK do LCCS, existe um arquivo chamado lccs.php, basta copiar para o mesmo diretório em que você já usa suas classes. Em seguida, adicionar o include no arquivo gateway.php
[PHP]
< ?php
require_once 'Zend/Amf/Server.php';
require_once 'lccs.php';
require_once 'Test.php';
/** Bootstrap */
// Instantiate server
$server = new Zend_Amf_Server();
$server->setProduction(false);
$server->setClass(‘Test’);
// Handle request
echo($server->handle());
?>
[/PHP]
E está é uma simples classe para teste chamando o método que retorna o token para autenticação.
[PHP]
< ?php
class Test
{
private $account;
private $room;
private $devUsername;
private $devPassword;
private $secret;
//$accountURL = "https://collaboration.adobelivecycle.com/$account";
private $accountURL;
private $roomURL;
function __construct()
{
//for LCCS
$this->account = “Your SDK account username from LCCS developer portal”;
$this->room = “The room you want to connect to”;
$this->devUsername = “Your LCCS developer account username”;
$this->devPassword = “Your LCCS developer account password”;
$this->secret = “The shared secret from the LCCS developer portal”;
//$accountURL = “https://collaboration.adobelivecycle.com/$account”;
$this->accountURL = “http://connectnow.acrobat.com/$this->account”;
$this->roomURL = “$this->accountURL/$this->room”;
}
public function getToken($data=array())
{
try
{
$this->account = new RTCAccount($this->accountURL);
$this->account->login($this->devUsername,$this->devPassword);
$session = $this->account->getSession($data[‘room’]);
$displayName = $data[‘displayName’];
$username = $data[‘username’];
$role = $data[‘role’];
$token = $session->getAuthenticationToken($this->secret, $displayName, $username, $role);
return $token;
}
catch (Exception $e)
{
throw new Exception($e->getMessage());
}
}
}
?>
[/PHP]