【问题标题】:get facebook profile picture for our database获取我们数据库的 facebook 个人资料图片
【发布时间】:2014-01-09 18:01:29
【问题描述】:

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

【问题讨论】:

    标签: php mysql facebook-graph-api


    【解决方案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/

    【讨论】:

    • 但是如何将图像存储到数据库中??
    • file_get_contents 后跟 file_put_contents 会起作用。然后,您将存储指向已保存个人资料图片的链接。
    【解决方案2】:

    获取头像

    假设你有用户的用户名,你可以从这个 URL 获取头像:https://graph.facebook.com/{username}/picture

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

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

    如果要获取特定尺寸的图片,可以使用 url https://graph.facebook.com/{username}/picture?type={size},将 {size} 替换为 squaresmallnormalnormallarge,具体取决于您想要的尺寸.或者,您可以使用 https://graph.facebook.com/{username}/picture?width={width}&height={height} 指定特定的图像大小。

    将它们存储在数据库中

    首先,您需要制作一个表格来存储您的图像。我会让你根据你使用的数据库模式自己弄清楚。图片应存储为BLOBs。

    然后您需要连接到数据库。下面是一些打开数据库连接的示例代码:

    // 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 命令是否成功 - 它应该是@987654341 @如果图像被成功插入。这将允许您响应数据库插入过程中的错误。

    参考文献

    请注意,我从未真正使用过 PHP(我也从未真正计划过使用它)——这都是一些 Google 搜索的结果。我没有测试过这些代码,所以它可能无法直接运行,但它应该足以让你朝着正确的方向前进。

    Facebook API Reference

    Tutorial: Storing images in MySQL with PHP

    【讨论】:

    • 这段代码可以保存图片吗?? $img = file_get_contents('graph.facebook.com/'.$fid.'/picture?type=large'); $file = dirname(file).'/avatar/'.$fid.'.jpg'; file_put_contents($file, $img);
    • 我不太了解 PHP(或根本不了解 PHP),但如果您尝试将图片放入 MySQL 数据库中,它看起来不会起作用 - 看起来像您'正在尝试将图片保存为文件,而不是将它们存储在数据库中。
    • @user3168567:我在答案中添加了一个关于如何将图像存储在 MySQL 数据库中的部分 - 希望对您有所帮助!
    猜你喜欢
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 2014-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多