Laravel socialite facebook头像

时间:2016-10-21 21:37:20

标签: php facebook laravel facebook-graph-api laravel-socialite

我在社交网站上使用Laravel 5.2。我能够提取用户的详细信息,但问题是,如果我将其注入src,则无法正确显示头像。

社交名称返回一个对象,我可以将其用作$facebookDetails->getAvatar(),其中返回的值类似于此https://graph.facebook.com/v2.6/123456789/picture?type=normal

如果我在图像src中回显此值,它将看起来像这样。

<img src="https://graph.facebook.com/v2.6/123456789/picture?type=normal" />

这似乎不是图像的实际网址,因为当我在浏览器上输入它时,它会将我重定向到&#34;实际&#34;图像并显示图像。

如何在img标签上显示图像以显示实际图像?

2 个答案:

答案 0 :(得分:8)

只需使用file_get_contents函数获取数据并处理检索到的数据。

在控制器

use File; 

$fileContents = file_get_contents($user->getAvatar());
File::put(public_path() . '/uploads/profile/' . $user->getId() . ".jpg", $fileContents);

//To show picture 
$picture = public_path('uploads/profile/' . $user->getId() . ".jpg");

答案 1 :(得分:1)

我正在使用以下代码:

/**
 * In order to save the user's avatar
 * REMEMBER TO ADD "use File; use Illuminate\Support\Carbon; use DB;" TO TOP! 
 * @param  $avatar Socialite user's avatar ($user->getAvatar())
 * @param $userId User's id database
 */
public function saveImageAvatar($avatar, $userId)
{
    $fileContents = file_get_contents($avatar);
    $path = public_path() . '/users/images/' . $userId . "_avatar.jpg";
    File::put($path, $fileContents);
    DB::table('Images')->insert(
        ['path' => $path,
        'nome' => 'avatar',
        'users_id' =>  $userId,
        'created_at' => Carbon::now()->format('Y-m-d H:i:s'),
        'updated_at' => Carbon::now()->format('Y-m-d H:i:s')]);
}