從Stuck's answer啓發(!感謝)和Symfony的食譜:
# src/Acme/FacebookBundle/RequestListener.php
namespace Acme\FacebookBundle;
use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
class RequestListener
{
public function onCoreRequest(GetResponseEvent $event)
{
$request = $event->getRequest();
if ('POST' == $request->getMethod() && null !== $request->get('signed_request'))
{
$request->setMethod('GET');
}
}
}
服務定義:
# app/config/config.yml
services:
acme.facebookbundle.listener.request:
class: Acme\FacebookBundle\RequestListener
tags:
- { name: kernel.listener, event: core.request, method: onCoreRequest }