Не могу использовать file_get_contents на https://api.facebook.com - PullRequest
0 голосов
/ 18 октября 2011

Я пытаюсь получить некоторую информацию, используя https://api.facebook.com

Следующее работает просто отлично: (обратите внимание на graph.facebook.com)

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

Но

$q = "https://api.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);

Есть идеи?

1 Ответ

0 голосов
/ 18 октября 2011

Такая глупая ошибка.Выкладываю рабочий пример:

Звонок:

$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());
        }
    }
}

Для всех, кто не хочет использовать facebok php sdk.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...