无法将 Facebook 个人资料图片存储在 sql 数据库中
Posted
技术标签:
【中文标题】无法将 Facebook 个人资料图片存储在 sql 数据库中【英文标题】:Unable to store the Facebook profile picture in sql database 【发布时间】:2012-07-29 19:28:14 【问题描述】:您可以看到下面的代码从 Facebook 个人资料中检索并显示所有必需的信息。 访问令牌: 用户身份: 姓名:阿内什 名: 姓: 电子邮件: 性别: 生日: 地点:N 时区:
但我无法将个人资料图片存储在 sql 数据库中?
<?php
require 'lib/db.php';
require 'lib/facebook.php';
require 'lib/fbconfig.php';
session_start();
$facebook=$_SESSION['facebook'];
$userdata=$_SESSION['userdata'];
$logoutUrl=$_SESSION['logout'];
$access_token_title='fb_'.$facebook_appid.'_access_token';
$access_token=$facebook[$access_token_title];
if(!empty($userdata))
echo '<h1>Login User Details</h1>';
echo '<img src="https://graph.facebook.com/'.$userdata['id'].'/picture">';
目前上面的代码显示图像...但是如何存储是问题 我使用了显示错误的 BLOB
echo "<br/>";
echo '<b>Access Token: </b>'.$access_token;
echo "<br/>";
echo '<b>User ID: </b>'.$userdata['id'];
echo "<br/>";
echo '<b>Name: </b>'.$userdata['name'];
echo "<br/>";
echo '<b>First Name: </b>'.$userdata['first_name'];
echo "<br/>";
echo '<b>Last Name: </b>'.$userdata['last_name'];
echo "<br/>";
echo '<b>Email: </b>'.$userdata['email'];
echo "<br/>";
echo '<b>Gender: </b>'.$userdata['gender'];
echo "<br/>";
echo '<b>Birthday: </b>'.$userdata['birthday'];
echo "<br/>";
echo '<b>Location: </b>'.$userdata['location']['name'];
echo "<br/>";
echo '<b>Time Zone: </b>'.$userdata['timezone'];
echo "<br/>";
echo "<br/>";
$facebook_id=$userdata['id'];
$name=$userdata['name'];
$email=$userdata['email'];
$gender=$userdata['gender'];
$birthday=$userdata['birthday'];
$location=mysql_real_escape_string($userdata['location']['name']);
$hometown=mysql_real_escape_string($userdata['hometown']['name']);
$bio=mysql_real_escape_string($userdata['bio']);
$relationship=$userdata['relationship_status'];
$timezone=$userdata['timezone'];
$inserty = "INSERT INTO `users` (`facebook_id`, `name`, `email`, `gender`, `birthday`, `location`,`timezone`, `access_token`,`??????`)
VALUES ('$facebook_id','$name','$email','$gender','$birthday','$location','$timezone','$access_token',`?????`)";
mysql_query($inserty, $connection);
?????我的意思是图片列
echo "<br/>";
echo '<a href="'.$logoutUrl.'">Logout Facebook</a>';
echo '<a href="http://www.xxxxxx.co.uk/Mosaic/logout.php">Logout Facebook</a>';
include('status_update.php');
else
header("Location: fblogin.php");
?>
【问题讨论】:
欢迎来到 SO。你能试着把你的问题缩小一点吗 - 它要么检索图像(在这种情况下,删除 Db 的东西),要么将图像存储在 Db 中(在这种情况下,删除 Fb 的东西)。你看到了什么错误?你试过什么?有时,追踪问题的最简单方法是将过程分解为可测试的步骤。例如图片下载好了吗?图片是否已存储在数据库中?可以从数据库中读取吗?为什么不显示... 【参考方案1】:听起来您正在尝试存储图像本身的二进制数据,而不是图像的 URL。理想情况下,您不应该存储图像/ URL,因为它在 Facebook 上不断变化。根据用户的不同,它可能每天都在变化!您可以使用 API 或 Facebook ID 轻松获取当前图像。
如果必须存储,则应存储 Facebook 版本的 URL,而不是图像本身。
如果您仍想将图像存储在数据库中,请尝试改用BINARY
类型。
【讨论】:
以上是关于无法将 Facebook 个人资料图片存储在 sql 数据库中的主要内容,如果未能解决你的问题,请参考以下文章
将 Facebook 图片 URL 上传到 Firebase 存储