Amfphp + Facebook

22 views
Skip to first unread message

Marco Pinto

unread,
Mar 23, 2011, 2:02:11 PM3/23/11
to portuga...@googlegroups.com
Boa tarde pessoal.

Estou a desenvolver uma app para facebook usando AMFPHP para poder comunicar entre um SWF e o PHP SDK do Facebook.

Tenho a gateway de AMF a funcionar, consigo usar o FB SDK sem problemas, mas não estou a conseguir ligar um ao outro, ou seja, não estou a conseguir criar um serviço de AMF que me faça a ligação ao FB e me retorne os dados que peço.

Alguém já passou por este problema, ou saiba onde estarei a meter os pés pelas mãos?

Deixo abaixo o código da gateway e do serviço em questão:

gateway.php

<?php

define("PRODUCTION_SERVER", false);

include "libraries/amfphp/globals.php";
include "libraries/amfphp/core/amf/app/Gateway.php";

$gateway = new Gateway();

$gateway->setClassPath("./services");
$gateway->setClassMappingsPath("./services/vo");

$gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1");
$gateway->setErrorHandling(E_ALL ^ E_NOTICE);

if(PRODUCTION_SERVER)
{
    $gateway->disableDebug();
    $gateway->disableStandalonePlayer();
}

$gateway->enableGzipCompression(25*1024);
$gateway->service();

?>


serviço.php

(passei à frente na verificação de login e permissões assumindo que o login está feito e a aplicação tem as permissões necessárias, afim de facilitar o processo)

<?php

require_once("../libraries/facebook.php");

class Teste
{
    public function uid()
    {
        $facebook = new Facebook(array(
          'appId'  => 'XXXXXXXXXXXX',
          'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXXXXX',
          'cookie' => false,
        ));

        $session = $facebook->getSession();
        return $facebook->getUser();
    }
}

Desde já, o meu obrigado por qualquer ajuda que me possam dar! :)

Marcello Duarte

unread,
Mar 23, 2011, 3:45:51 PM3/23/11
to portuga...@googlegroups.com
Olá Marco,

Quando dizes que não consegues ligar um ao outro a que te referes? Que parte do código não se comporta como esperas? Percebo que tens as classes dentro da paste services com os Value Objects dentro da vo e que criaste o entre point na gateway.php. Imagino que a tua aplicação FB tem um swf e daí vem os pedidos para o serviço. Não falta ai um $facebook->api('caminho/para/o/teu/serviço'): ??

Cumprimentos,
Marcello

--
Recebeu esta mensagem porque está inscrito no grupo "Portugal PHPUG" dos Grupos do Google.
Para publicar uma mensagem neste grupo, envie um e-mail para portuga...@googlegroups.com.
Para anular a inscrição neste grupo, envie um e-mail para portugal-phpu...@googlegroups.com.
Para ver mais opções, visite este grupo em http://groups.google.com/group/portugal-phpug?hl=pt-PT.


Marco Pinto

unread,
Mar 23, 2011, 8:04:25 PM3/23/11
to portuga...@googlegroups.com
Olá Marcello,

Antes de mais, obrigado pela resposta.

O $facebook->getUser(); retorna-me o UID do utilizador (é uma função interna do SDK).

O problema é que me está a retornar um valor NULL, ou seja, o SDK não está a ser inicializado correctamente. 

Suponho que seja algo que está a faltar, a quando da inicialização da classe Facebook do SDK, que não está a criar a ligação correctamente. Algo que passa quando a função é chamada directamente mas não quando é chamada pelo AMF. 

Estou a pensar que poderá ser pela falta do "signed_request" que é enviado pelo FB para a aplicação. O problema é que quando o serviço é inicializado, esse request já não existe ou não passa para o serviço. E ainda não cheguei a solução de como passar essa informação para dentro do serviço, para que o SDK possa ser inicializado correctamente.

Mais uma vez, obrigado.


2011/3/23 Marcello Duarte <marcell...@gmail.com>
Reply all
Reply to author
Forward
0 new messages