2013-12-31 4 views
2

Мне тяжело пытаться отправить данные POST в twitch api (https://api.twitch.com/kraken/oauth2/token) и вернуть код json ... Это мой текущий код:PHP - отправьте данные на URL-адрес и получите ответ

$this->config->load("config", true); 
$url = "https://api.twitch.tv/kraken/oauth2/token"; 
$postvars = "client_id=" . $this->config->item('twitch_clientid', 'config') . "&client_secret=" . $this->config->item('twitch_secret', 'config') . "&grant_type=user_read&redirect_uri=" . $this->config->item('twitch_redirect', 'config') . "&code=" . $key; 

$temp = curl_init($url); 
curl_setopt($temp, CURLOPT_POST, 1); 
curl_setopt($temp, CURLOPT_POSTFIELDS, $postvars); 
curl_setopt($temp, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($temp, CURLOPT_HEADER, 0); 
curl_setopt($temp, CURLOPT_RETURNTRANSFER, 1); 
$result = json_decode(@file_get_contents(curl_exec($temp)), true); 

Но ... очевидно, что это не так, как я должен это делать. Первый раз работает с завитком.
Ошибка:

A PHP Error was encountered 
Severity: Warning 
Message: file_get_contents(): Filename cannot be empty 
Filename: controllers/user.php 
Line Number: 37 

Результат ожидается:

{ 
    "access_token": "[user access token]", 
    "scope":[array of requested scopes] 
} 
+0

Какие ошибки вы получаете? Каков желаемый и фактический результат? – Basic

+0

Обновленный вопрос. – xMoltenX

ответ

1

Ошибка в этой строке:

$result = json_decode(@file_get_contents(curl_exec($temp)), true); 

curl_exec возвращает ложь или данные, когда returntransfer на (http://pl1.php.net/curl_exec), следовательно, код должен больше нравиться

if (! $data = curl_exec($ch)) { 
    //ERROR 
} else { 
    $result = json_decode($data, true); 
} 
curl_close($ch); 

Вы всегда можете установить опцию VERBOSE в true, чтобы лучше узнать, что посылает серверу.

Смежные вопросы