Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Facebook名称是否可以使用Facebook API公开访问_Php_Facebook_Facebook Graph Api - Fatal编程技术网

Php Facebook名称是否可以使用Facebook API公开访问

Php Facebook名称是否可以使用Facebook API公开访问,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,Facebook上的个人资料名称是否可以公开访问,就好像我不需要登录Facebook就可以访问它们一样 我打算将大量名称存储为较大项目的一小部分。我觉得使用Facebook Graph API在Facebook上搜索名字是一项相对简单的任务,但我有点困惑 我在网上找到了另一个教程,其中描述了一种简单的方法,可以使用一行代码查找任何Facebook个人资料图片: https://graph.facebook.com/USER-ID/picture?type=large 这非常有用,因为我能够使用

Facebook上的个人资料名称是否可以公开访问,就好像我不需要登录Facebook就可以访问它们一样

我打算将大量名称存储为较大项目的一小部分。我觉得使用Facebook Graph API在Facebook上搜索名字是一项相对简单的任务,但我有点困惑

我在网上找到了另一个教程,其中描述了一种简单的方法,可以使用一行代码查找任何Facebook个人资料图片:

https://graph.facebook.com/USER-ID/picture?type=large
这非常有用,因为我能够使用一系列ID号和少量PHP收集大量的配置文件图片,如我的测试页面上所示:

但我不熟悉的是,我是如何在这一行中从收集图片到收集名字的。可能吗?还有别的(更好的)办法吗

这是我正在使用的代码。ID的范围只是一个例子

function gen_pix($min, $max, $quantity) {
    $numbers = range($min, $max);
    shuffle($numbers);
    $x_arr = array_slice($numbers, 0, $quantity);
    foreach ($x_arr as $key => $value) {
        $username = "https://graph.facebook.com/" . $value . "/";
        $json = json_decode(file_get_contents($username), true);
        echo $json["name"];
    }
}

$x = 337800042;
$y = 337800382;
$z = 1;

gen_pix($x,$y,$z);

我对这段代码有了进一步的了解,我可以回显
$username
,并获得我要查找的URL(例如
https://graph.facebook.com/337800382/
)但之后我什么也得不到
json_decode
似乎不起作用。

就像你拉配置文件图片一样,你可以用用户ID获取用户的基本信息

提供始终可公开访问的数据列表

所以你需要发出一个GET请求来撤回JSON,就像这样

{用户id}/

例如,提取我的基本信息。因此,您的PHP将如下所示

$json = json_decode(file_get_contents("https://graph.facebook.com/$user_id/"), true);
echo $json["name"];

更新:基于上述代码,值得添加一个
IF
来捕获无效的Facebook ID。Facebook ID可能不是连续的,所以不是每个人都会返回姓名或图像

更新代码:

<?php
function gen_pix($min, $max, $quantity) {
    $numbers = range($min, $max);
    shuffle($numbers);
    $x_arr = array_slice($numbers, 0, $quantity);
    foreach ($x_arr as $key => $value) {
        $username = "https://graph.facebook.com/" . $value . "/";
        $json = json_decode(file_get_contents($username), true);
        if (!isset($json['name'])) {
            echo "Invalid ID<br />";
        }
        else {
            echo $json["name"]. '<br />';
        } 
    }
}

$x = 337800042;
$y = 337800382;
$z = 50;

gen_pix($x,$y,$z);  
?>


还值得注意的是,从图表中提取这么多数据需要一段时间。请看一看如何执行批处理请求,以加快速度

这个项目是一个社会实验,我可以很容易地使用其他数据库随机生成名字,但使用从Facebook上刮下来的名字会更加真实。我如何访问Facebook上的姓名?发布您的代码,如何获取
id
s?从db还是随机生成
id
?@AdamAzad添加了我的代码,并附上了下面Pete的建议。我走得更远了一点,但我遇到了一个新问题,你觉得怎么样?@PeteSimmons当我
var\u dump
我得到
NULL
Joshie,Pete的代码应该可以工作,问题是你在随机地尝试数字这似乎可以工作,但没有返回任何东西,我编辑了我的帖子以获得我的代码。你的提琴也坏了。你认为这可能是你的一些Facebook ID的问题。使用$x变量运行fiddle将返回名称“Jill Walker Rettberg”。但是,$y和$z不起作用。有什么原因可以让它在PHP小提琴中起作用,而在我的任何浏览器中都不起作用?因为你的小提琴现在对我有用,以前没有。但是现在我只是把代码放到一个文件中,并在Chrome Canary、Firefox和Safari上进行测试,但是它们都是“无效ID”,即使我可以确认其中一些确实有效。当你点击{Invalid ID}时,你从图中得到了什么响应?