Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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 无法在上使用文件获取内容https://api.facebook.com_Php_Facebook_Facebook Graph Api - Fatal编程技术网

Php 无法在上使用文件获取内容https://api.facebook.com

Php 无法在上使用文件获取内容https://api.facebook.com,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我正试图用计算机获取一些信息https://api.facebook.com $q = "https://graph.facebook.com/$params".$sep."access_token=$access_token"; $response = json_decode(file_get_contents($q),true); 下面的工作很好:注意graph.facebook.com $q = "https://graph.facebook.com/$params".$sep."acc

我正试图用计算机获取一些信息https://api.facebook.com

$q = "https://graph.facebook.com/$params".$sep."access_token=$access_token";
$response = json_decode(file_get_contents($q),true);
下面的工作很好:注意graph.facebook.com

$q = "https://graph.facebook.com/$params".$sep."access_token=$access_token";
$response = json_decode(file_get_contents($q),true);
但是

只是不起作用。我已经尝试了curl,但我一直没有实现这个方法

以下代码:

$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$url = "https://api.facebook.com/$params".$sep."access_token=$access_token";
echo $url;
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_URL, $url);

echo curl_exec($ch);
echo curl_errno($ch);

curl_close ($ch);

有什么想法吗?

这是个愚蠢的错误。我发布了一个工作示例:

电话:

$status = $fb->api("method/fql.query?query=".urlencode("SELECT url FROM url_like WHERE user_id = $ID")."",$access_token);
班级:

class fb 
{
    public function api($params, $access_token) 
    {
        try 
        {
            $q = "https://api.facebook.com/$params?format=json-strings&access_token=$access_token";
            $response = json_decode(file_get_contents($q),true);

            if ($response->error->message != null) 
                throw new Exception($response->error->message);
            else
                return $response;
        } 
        catch (Exception $e) 
        {
            return ("<b>Error:</b> " . $e->getMessage());
        }
    }
}

对于所有不想使用facebook php sdk的人。

它不需要POST,是吗?还有,$params中的内容和$sep中的内容?我尝试过POST,但出现了相同的错误$params和$sep只是我在这个类中使用的变量。不用管他们,$url是正确的。我得到的结果,我正在寻找时,直接到该网址。我只是不能在一个变量中得到结果。我会破解Wireshark,看看这两个请求之间的差异,并尝试模仿PHP中成功的请求。你的PHP是用https支持编译的吗?为什么有人不使用或扩展官方SDK?这是一个轻量级的好方法,从仅仅看到你的代码开始…你正在$response中重新调整一个数组,因为你使用的是true,但是作为对象访问它,我想这是行不通的;这是正确的,我只是在之后才看到$status变量。