[英]PHP - Send post data to URL and get the response
我很难尝试将POST数据发送到twitch api( https://api.twitch.com/kraken/oauth2/token )并获取json代码...这是我当前的代码:
$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);
但是……显然那不是我应该做的方式。 第一次使用curl。
错误:
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]
}
错误在这一行:
$result = json_decode(@file_get_contents(curl_exec($temp)), true);
curl_exec在returntransfer打开时返回false或数据( http://pl1.php.net/curl_exec ),因此代码应更像
if (! $data = curl_exec($ch)) {
//ERROR
} else {
$result = json_decode($data, true);
}
curl_close($ch);
您始终可以将选项VERBOSE
设置为true,以更好地了解发送到服务器的内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.