2016-09-23 11 views
-3

Мне нужно заменить ротор с file_get_content (я удалил деликатную информацию):Заменить ротор с file_get_content

curl -F 'client_id=aaa' \ 
    -F 'client_secret=bbb' \ 
    -F 'grant_type=authorization_code' \ 
    -F 'redirect_uri=http://testtest.altervista.org/instagram/' \ 
    -F 'code=ccc' \ 
    https://api.instagram.com/oauth/access_token 

I судимым это, но doens't работы (не возвращает ничего):

$url = 'https://api.instagram.com/oauth/access_token?client_id=aaa&client_secret=bbb&grant_type=authorization_code&redirect_uri=http://testtest.altervista.org/instagram/&code=ccc'; 
print json_decode(file_get_contents($url));  

Зачем ?

+0

Что вы получаете при запуске этого URL-адреса в браузере? – Exception

+1

вы заменяете команду cURL 'shell' на php file_get_contents ..., какова ваша реальная цель здесь? – YvesLeBorg

+0

Когда у вас есть URL-адрес внутри URL-адреса, внутренний URL-адрес ДОЛЖЕН быть 'urlencode()' ed. Если вы ничего не получите, было бы полезно показать журнал ошибок или, по крайней мере, заголовки и код состояния, возвращаемые вызовом. – DanFromGermany

ответ

3

Не знаете, почему вы хотите изменить cURL на file_get_contents, но я бы, по крайней мере, обязательно закодировал запрос, который вы пытаетесь использовать. Вы можете использовать http_build_query, чтобы получить нужный результат.

$query = array(
    'client_id' => 'aaa', 
    'client_secret' => 'bbb', 
    'grant_type' => 'authorization_code', 
    'redirect_uri' => 'http://testtest.altervista.org/instagram/', 
    'code' => 'ccc 
); 

$domain = 'https://api.instagram.com/oauth/access_token?' 
$url = $domain . http_build_query($data); 
print json_decode(file_get_contents($url));