获取我们数据库的facebook个人资料照片

时间:2014-01-09 18:01:29

标签: php mysql facebook-graph-api

有没有办法获取我们朋友的Facebook个人资料照片并将其存储在我们的数据库中以供进一步使用。 (就像他们的Facebook个人资料的网址一样,好像他们更改了他们的个人资料图片,我们会自动获取他们的新个人资 在graph.facebook.com和facebook api的帮助下可以做类似的事情,但我不知道该怎么做。 我可以获得代码或来源,或者甚至只是一些指导如何做到这一点。 我正在使用php和mysql并使用xampp作为我的本地服务器。

2 个答案:

答案 0 :(得分:1)

获取个人资料照片

假设您拥有用户的用户名,则可以从此网址获取个人资料照片:https://graph.facebook.com/{username}/picture

例如,如果您想要我的照片,可以从https://graph.facebook.com/hawkw/picture

抓取图像

您可以在PHP中使用file_get_contents来检索图像。

如果您想获得特定尺寸的图片,可以使用网址https://graph.facebook.com/{username}/picture?type={size},将{size}替换为squaresmallnormal或{{ 1}},取决于你想要的尺寸。或者,您可以使用large指定特定的图片尺寸。

将它们存储在数据库

首先,你要制作一张桌子来存储你的图像。我会让你根据你正在使用的数据库架构来解决这个问题。图像应存储为https://graph.facebook.com/{username}/picture?width={width}&height={height} s。

然后您将要连接到数据库。以下是打开数据库连接的示例代码:

BLOB

然后,您应该使用如下所示的查询将图像插入表中:

// Make the connect to MySQL or die
// and display an error.
$link = mysql_connect($host, $username, $password);
if (!$link) {
     die('Could not connect: ' . mysql_error());
}

// Select your database
mysql_select_db ($database);

然后致电

$query = "INSERT INTO images_table ";
$query .= "(image) VALUES ('$data')";

请注意,我将$succeeded = mysql_query($query, $img); 的结果分配给名为mysql_query的变量,因为$succeeded返回一个布尔值,可用于确定mysql_query命令是否成功或不 - 如果成功插入图像,则应为INSERT。这将允许您响应数据库插入过程中的错误。

参考

请注意,我从未真正使用过PHP(我实际上并没有计划过) - 这是Google搜索的全部结果。我没有测试任何这些代码,所以它可能无法正常使用,但它应该足以让你朝着正确的方向前进。

Facebook API Reference

Tutorial: Storing images in MySQL with PHP

答案 1 :(得分:1)

您可以使用Facebook API获取图片:

/* make the API call */
$response = $facebook->api(
    "/me/picture"
);
/* handle the result */

https://developers.facebook.com/docs/graph-api/reference/user/picture/