我知道这个问题已经讨论过了,但我仍然找不到解决方案。
我使用带有FOSUserBundle的HWIOAuth捆绑包来连接我的用户和社交。
#app/config.yml
#HWIOAuthBundle
hwi_oauth:
firewall_name: main
resource_owners:
facebook:
type: facebook
client_id: %oauth.facebook.id%
client_secret: %oauth.facebook.secret%
scope: "email"
options:
display: popup
infos_url: "https://graph.facebook.com/me?fields=id,name,email,picture.type(square)"
paths:
email: email
profilepicture: picture.data.url
http_client:
verify_peer: false如何在我的Twig文件中集成"profilepicture: picture.data.url“?
<li class="user-header">
<img src="{{ asset('theme/AdminLTE/dist/img/user2-160x160.jpg') }}" class="img-circle" alt="User Image" />
<p>
{{ app.user.username }}
</p>
</li>非常感谢,我不明白如何使用这个参数"profilepicture: picture.data.url“来获取HWIOAuthBundle的facebook头像。
发布于 2015-05-20 20:16:17
您可以在例如loadUserByOAuthUserResponse(UserResponseInterface $response中接收所需的详细信息:
/* @var $response \HWI\Bundle\OAuthBundle\OAuth\Response\UserResponseInterface */
var_dump(
$response->getEmail(),
$response->getProfilePicture()
);发布于 2015-05-22 03:59:07
我解决了这个问题,在我的实体中添加一个字段:
//Acme/UserBundle/Entity/User.php
/**
* @var string
*
* @ORM\Column(name="profile_picture", type="string", length=250, nullable=true)
*
*/
protected $profilePicture;并像这样修改UserProvider.php:
//Acme/UserBundle/OAuth/UserProvider.php
protected function updateUserByOAuthUserResponse(User $user, UserResponseInterface $response)
{
$providerName = $response->getResourceOwner()->getName();
$providerNameSetter = 'set'.ucfirst($providerName).'Id';
$user->$providerNameSetter($response->getUsername());
$user->setProfilePicture($response->getProfilePicture());
if(!$user->getPassword()) {
// generate unique token
$secret = md5(uniqid(rand(), true));
$user->setPassword($secret);
}
return $user;
}https://stackoverflow.com/questions/30347424
复制相似问题