ReSTful приложение Facebook холст Symfony2 - PullRequest
2 голосов
/ 10 июня 2011

Как вы, возможно, знаете, для того, чтобы передавать информацию пользователя (signed_request) в ваше приложение, приложения Facebook получают доступ к холстам (то есть: iframe), отправляя им запрос POST.Этот механизм объяснен здесь .

Чтобы сохранить ReSTful, какое место в Symfony (какой сервис, файл ...) было бы правильным для реализации этого трюка с Ruby on Rails, Пьер Оливье Мартель, описал здесь:Например: конвертировать все запросы POST, содержащие параметр Signed_request, в GET ?

Ответы [ 2 ]

2 голосов
/ 19 июня 2011

Вдохновленный ответом Штука (спасибо!) И поваренной книгой 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 }
2 голосов
/ 11 июня 2011

Вы можете реализовать RequestListener, как это делается в RESTBundle: https://github.com/FriendsOfSymfony/RestBundle/blob/master/EventListener/RequestListener.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...