Solicitação assinada da guia iframe do Facebook sempre vazia

Estou trabalhando em uma guia de aplicativo do Facebook e gostaria de usar o pacote de solicitação assinado conforme documentado aqui: http://developers.facebook.com/blog/post/462/

Eu estou tentando usar seu código de exemplo para descompactar a solicitação assinada que supostamente é passada para a guia, no entanto, $_POST , $_GET e $_REQUEST estão sempre todos vazios.

O código exato funciona na página de canvas e eu posso analisar a solicitação assinada.

Existe algo que estou perdendo em seu recente anúncio?

A propósito, o aplicativo não é publicado no mercado, e a fanpage em que minha guia está instalada é privada. Isso fará diferença?

-Seth

Ok, descobri! Ao configurar o aplicativo, eu tinha preenchido o “URL da guia” para ser “tab /” Isso fez a URL completa para a guia ” http://www.example.com/myfacebookapp/tab/ ” Isso fez sentido para mim .

Aparentemente, o Facebook não gosta disso. Depois de mudar o meu “Tab URL” para “tab / index.php”, o pedido assinado começou a aparecer na aba do aplicativo!

Essencialmente, o problema é que o seu servidor está executando um redirecionamento quando recebe o pedido. No seu caso, ele está sendo redirecionado de http://www.example.com/myfacebookapp/tab/ para http://www.example.com/myfacebookapp/tab/index.php ; no meu caso, ele estava redirecionando de http://www.example.com/myfacebookapp/tab para http://www.example.com/myfacebookapp/tab/ (meu aplicativo é integrado no .net MVC, portanto, não tem nomes de arquivo, mas precisa dessa barra, aparentemente).

Portanto, a solução canônica é certificar-se de que o caminho no campo URL da guia seja a URL real , e não aquele para o qual o servidor da Web redirectá. Se o servidor da web tiver que fazer um redirecionamento, a página real será buscada por GET (não POST) e nenhum signed_request postdata será fornecido para seu script.

Muito frustrante; Eu gasto uma hora e meia depurando porque meu aplicativo de teste funcionou e o de produção não. Para piorar as coisas, eu sabia que esta resposta, apenas não registrou que este era o problema. Muito irritante!

Graças Seth eu estava tendo o mesmo problema. Eu poderia receber uma solicitação assinada na página de canvas do aplicativo, mas não na guia da minha página. Para esclarecimento

  1. vá para http://www.facebook.com/developers/
  2. clique nas configurações de edição do seu aplicativo
  3. clique na guia Integração do Facebook
  4. na parte inferior da seção Tabulações da página no campo URL da guia, insira o caminho para a página index.php da sua página de destino do facebook

ex. se sua página está localizada em http://www.foobar.com/facebook/tab/index.php você precisa colocar “tab / index.php” (sem as aspas) ao invés de apenas “tab /”

Tenho tentado descobrir isso por dias!

Eu encontrei uma solução: basta colocar um “/” no final da URL da guia. Como: “http://domain.us/facebook/tab/”

Funcionou para mim, deixe-nos saber se também funciona para você!

Depois de autenticar com o aplicativo, você receberá os dados do signed_request, autenticados como nos URLs abaixo