Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 在oauth中获取twitter屏幕名_Symfony_Oauth_Twitter Oauth - Fatal编程技术网

Symfony 在oauth中获取twitter屏幕名

Symfony 在oauth中获取twitter屏幕名,symfony,oauth,twitter-oauth,Symfony,Oauth,Twitter Oauth,我正在和你一起申请 在这个类中,我可以检索twitter ID和访问令牌,但我不确定如何获取屏幕名称: use HWI\Bundle\OAuthBundle\OAuth\Response\UserResponseInterface; use HWI\Bundle\OAuthBundle\Security\Core\User\FOSUBUserProvider as BaseClass; use Symfony\Component\Security\Core\User\UserInterface;

我正在和你一起申请

在这个类中,我可以检索twitter ID和访问令牌,但我不确定如何获取屏幕名称:

use HWI\Bundle\OAuthBundle\OAuth\Response\UserResponseInterface;
use HWI\Bundle\OAuthBundle\Security\Core\User\FOSUBUserProvider as BaseClass;
use Symfony\Component\Security\Core\User\UserInterface;


class FOSUBUserProvider extends BaseClass
{

    /**
     * {@inheritDoc}
     */
    public function connect(UserInterface $user, UserResponseInterface $response)
    {
        $property = $this->getProperty($response);
        $service = $response->getResourceOwner()->getName(); // I can get service name
        $username = $response->getUsername();//I can get username
        $accesstoken = $response->getAccessToken(); //I can get access token
        $screen_name = $response->getScreenName(); // error,how can I get screen name?????

如何获取twitter屏幕名?

我不知道您是否已经解决了问题,但解决方案是:您可以通过检查供应商/hwi/oauth bundle/hwi\bundle\OAuthBundle\oauth\ResourceOwner,然后查找资源所有者文件来访问屏幕名。您可以在名为$PATH的类的开头看到一个数组。您所要做的就是使用该键访问所需的值

对于twitter,您可以看到以下内容:

    protected $paths = array(
    'identifier' => 'id_str',
    'nickname'   => 'screen_name',
    'realname'   => 'name',
);
你所要做的就是使用它

$response->getNickName();
那么,假设您想保存用户名,您可以这样写:

$user->setUsername($response->getNickName());

假设有这样一个函数,我想应该是getScreenName。你错过了一个n。谢谢@kapep,我试过getScreenName和getScreenName,但都没有成功。