我正在codeigniter中构建一个应用程序,允许用户使用Facebook Graph API登录。
我正在存储用户信息,并希望获得有关如何处理用户个人资料图像的建议。
由于 API 为图像提供了一个 URL,我应该将其存储在本地并将文件名保存到 db 还是简单地将 URL 存储在另一列中?
在我看来,我像这样显示存储的本地图像:
<img src="./image/avatars/<?php echo $user->profile ?>" class="img-circle" alt="" />
如果我将FB URL存储在另一列中,我可以添加一些条件来显示$user>配置文件为空。
像这样:
<?php if ($user->profile == null && $user->fbprofile != null){
echo "<img src='".$user->fbprofile."' class='img-circle' />";
}else{
echo "<img src='./image/avatars/".$user->profile."' class='img-circle'/>";
?>
请注意,如果是普通用户,他们将始终拥有个人资料图像,即头像.png如果没有上传任何内容。
关于这是否是处理此问题的最佳方法的任何建议?不确定对此的最佳实践是什么。
谢谢
在收到Facebook电子邮件和FBID后使用此代码
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, 'http://graph.facebook.com/'.(FBID ).'/picture');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
$fileName = 'image/avatars/fbprofile_'time()'.jpg';
$file = fopen($fileName, 'w+');
fputs($file, $data);
fclose($file);
和"$fileName"保存在配置文件URL的数据库中