Ошибка Symfony2 HWIOauthBundle с ответом

Надеюсь, кто-нибудь может ответить на мой вопрос ниже.

Я запускаю проект с symgfony2. Я предлагаю пользователям импортировать свое CV из внешних платформ, таких как Linkedin или XING.

Что мне не нужно, так это предложить пользователю возможность входа на мой сайт через linkedin или Xing.

Поэтому, хотя я могу использовать для этого HwioAuthBundle, но я не могу понять, как это сделать!

На данный момент это так, что я прихожу на страницу входа в систему, но когда я вернусь на свой сайт, я получаю сообщение об ошибке:

«»»

Controller "XXXXX\MyBundle\Controller\MyController::importProfileLinkedinAction()" requires that you provide a value for the "$response" argument (because there is no default value or because there is a non optional argument after this one). 

«»»

Я делаю это, как описано в документации:

config.yml

 hwi_oauth: firewall_name: secured_area resource_owners: linkedin: type: linkedin client_id: XXXXXXXXXXXXXXXX client_secret: XXXXXXXXXXXXXXXX scope: r_fullprofile infos_url: "http://api.linkedin.com/v1/people/~:(id,formatted name,recommendations-received)" services: oauth_user_provider: class: HWI\Bundle\OAuthBundle\Security\Core\User\OAuthUserProvider 

security.yml

  secured_area: oauth: resource_owners: linkedin: /login/linkedin login_path: /secured/login failure_path: /secured/login oauth_user_provider: oauth: ~ 

routing.yml

 hwi_oauth_redirect: resource: "@HWIOAuthBundle/Resources/config/routing/redirect.xml" prefix: /secured/connect linkedin: pattern: /login/linkedin defaults: _controller: MYBundle:MyController:importProfileLinkedin по hwi_oauth_redirect: resource: "@HWIOAuthBundle/Resources/config/routing/redirect.xml" prefix: /secured/connect linkedin: pattern: /login/linkedin defaults: _controller: MYBundle:MyController:importProfileLinkedin 

MyController.php

 use \HWI\Bundle\OAuthBundle\OAuth\Response\UserResponseInterface; ... public function importProfileLinkedinAction(Request $request, UserResponseInterface $response) { $data = $response->getResponse(); /* this method should return all data that was sent from resource owner ???*/ var_dump( $data ); exit; } 

благодаря

Контроллер переписывания пакетов – это плохая идея, поскольку логика намного сложнее, чем простой запрос на чтение и ответ. Пожалуйста, ознакомьтесь с официальной документацией .

Ваша проблема заключается в том, что $response никогда не отображается глобально, он скрыт для внутреннего использования пакета и задан только в нескольких местах. Чтобы сделать это правильно, вам необходимо реализовать собственный провайдер и перезаписать функциональные возможности: loadUserByOAuthUserResponse(UserResponseInterface $response) и сохранить необходимые данные, то есть в сеансе.