【问题标题】:Display name & picture knowing ID显示名称和图片知道ID
【发布时间】:2012-08-15 19:41:57
【问题描述】:

我一直在寻找我的问题的答案,但到目前为止我得到了这个:

https://graph.facebook.com/the_user_id?fields=name,picture

我需要能够显示/打印一组我知道其 ID 的用户列表的名字、姓氏和图片。需要什么代码来获取这些数据,然后将其发布到 php/html 页面上?当然,这意味着如果我要显示 10 个用户,我将输入 10 个不同的 ID(阅读 smtg 关于数组列表?)。请注意,我不需要此功能适用于当前用户。

提前感谢您的回复。

【问题讨论】:

    标签: facebook-graph-api profile image


    【解决方案1】:

    你需要在php中使用file_get_contents(http://uk3.php.net/file_get_contents)或者curl,向url发出请求,如下所示:

     https://graph.facebook.com/?ids=id1,id2,id3&fields=name,picture
    

    (将 id1,id2 替换为您的 id)

    这将返回一个 json 对象。然后您需要解码 (http://uk3.php.net/json_decode) 并循环访问并访问信息

    这应该让你开始

    // people array uses the users id as the key and the dessert as the value. The id is then used in the query to facebook to select the corresponding value from this array
    $people = array("id1"=>"favourite "dessert", "id2"=>"favourite dessert", "id3"=>"apple pie");
    
     $json = file_get_contents('https://graph.facebook.com/?ids=id1,id2,id3&fields=id,name,picture');
     $json = json_decode($json);
    foreach($json as $key=>$person){
       echo '<p><img src="'.$person->picture.'" alt="'.$person->name.'" />';
       echo $person->name.'\'s favourite dessert is '.$people[$person->id'];
       echo '</p>';
    }
    

    我在这里对请求进行了批处理,或者您可以为每个用户执行 10 个单独的查询,但这有点无意义且效率低下

    【讨论】:

    • 汤米,这工作完美。现在,如果我需要这样的东西怎么办:(图片)John Smith 最喜欢的甜点是苹果派(图片)Jane Doe 最喜欢的甜点是巧克力蛋糕 如您所见,一个重复的文本(最喜欢的甜点是 )和一个独特的(甜点的名称)将需要添加。如何做到这一点?我在想也许是: - 进行单个查询,添加额外的文本(最慢) - 添加一些编码,使我们能够将甜点的名称附加到每个 ID,例如:8675309&apple pie,1234567&chocolate cake 等 再次感谢您的是时候解释/解决这个问题了。
    • 我已经编辑了我的答案,向您展示如何实现这一目标。我假设你已经有了最喜欢的甜点和用户的 id。请注意,我编辑了 file_get_contents 调用以包括返回 id
    • 嘿汤米,似乎由于 Facebook 的新更改,代码给了我一个错误:“可捕获的致命错误:stdClass 类的对象无法转换为 /home/website/ 中的字符串public_html/directory/fblike_1.php 第 50 行,即:----echo '

      picture.'" alt="'.$person->name.'" />';----- 知道如何解决这个问题吗?提前感谢您的回答。

    • 嗨,我认为 $person->picture 现在需要是 $person->picture->data->url
    【解决方案2】:

    最简单的方法是使用 FQL 查询:

    SELECT first_name, last_name, pic, uid FROM user WHERE uid IN 
      (Known_ID_1, Known_ID_2, ... Known_ID_n)
    

    如果您使用 PHP,最简单的方法是安装 PHP SDK,不过您也可以直接调用 https://graph.facebook.com/fql?q=URL_ENCODED_QUERY

    【讨论】:

      猜你喜欢
      • 2021-04-06
      • 2016-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      • 1970-01-01
      • 2020-05-13
      • 1970-01-01
      相关资源
      最近更新 更多