Php 通过RESTAPI不断检查TwitchTV查看器计数
所以基本上,我想做的是实时获取当前直播流的观众数量。我有一个检查,看看流是否是活的。如何持续ping API以获取更新的值,以便我可以将更新的值发送到文档?在这种情况下,它将最终更新我设置的Php 通过RESTAPI不断检查TwitchTV查看器计数,php,ajax,api,codeigniter,curl,Php,Ajax,Api,Codeigniter,Curl,所以基本上,我想做的是实时获取当前直播流的观众数量。我有一个检查,看看流是否是活的。如何持续ping API以获取更新的值,以便我可以将更新的值发送到文档?在这种情况下,它将最终更新我设置的$viewers变量。如果有什么不同,那么我正在使用的应用程序就是CodeIgniter框架。下面是我目前必须拨打的代码。现在我必须重新加载页面以获得实际值,它使用cURL进行API调用 class Streaming { var $base_url = "https://api.twitch.
$viewers
变量。如果有什么不同,那么我正在使用的应用程序就是CodeIgniter框架
。下面是我目前必须拨打的代码。现在我必须重新加载页面以获得实际值,它使用cURL进行API调用
class Streaming {
var $base_url = "https://api.twitch.tv/kraken/";
var $client_id = 'client_id_here';
public function load_stream_stats($channel) {
$curl = curl_init();
curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $this->base_url . 'streams/'. $channel .'?client_id=' . $this->client_id
)
);
$result = curl_exec($curl);
//makes sure that the cURL was excuted if not it generates the error stating that it didn't succeed.
if(!curl_exec($curl)){
die('Error: "' . curl_error($curl) . '" - Code: ' . curl_errno($curl));
} else {
//cURL Response worked
if(!empty($channel)) {
$return = json_decode($result);
if($return->stream == null) {
return;
// stream is offline no need to do anything
} else {
$stream_details = array('viewers' => $return->stream->viewers);
// $return->stream->viewers gives a number e.g. 1052
return $stream_details;
}
}
}
curl_close($curl);
}
}
手头的问题是如何ping TwitchtV API以从restapi获取更新的查看器计数?这里是正在工作的ajax。在site\u url/auto\u update/broadcast/username中,我有一个json值,其中包含从API中提取的查看器计数,因此我可以自动更新它。因此,将api中的查看器计数编码并将其编码为json,然后可以提取所有值
<script type="text/javascript">
var viewers = <?= $viewers ?>;
var username = "<?= $username ?>";
var site_url = "<?= base_url() ?>";
var poll_interval = 3000;
</script>
<script type="text/javascript">
$(document).ready(function() {
$('#viewers').append(viewers);
setInterval(function(){
$.ajax({
url: site_url + "auto_update/broadcast/" + username,
type: "GET",
dataType: "json",
cache: false,
success: function(data) {
if (data == null) return;
var update_viewers = data['viewers'];
console.log(update_viewers);
$('#viewers').html(update_viewers);
}
});
}, poll_interval);
});
</script>
var=;
var username=“”;
var site_url=“”;
var poll_间隔=3000;
$(文档).ready(函数(){
$(“#查看器”).append(查看器);
setInterval(函数(){
$.ajax({
url:site\u url+“自动更新/广播/”+用户名,
键入:“获取”,
数据类型:“json”,
cache:false,
成功:功能(数据){
if(data==null)返回;
var update_viewers=数据['viewers'];
日志(更新查看器);
$('#viewers').html(更新#viewers);
}
});
},轮询间隔);
});
AJAX调用包含最新更新的查看器计数的函数,然后将其编码为json。我每3秒钟调用一次这个函数。如果附加了客户端ID,则不会受到速率限制。希望这能帮助别人
如果你有任何问题,请告诉我,我会尽力帮助你 使用ajax就在这里。在site\u url/auto\u update/broadcast/username中,我有一个json值,其中包含从API中提取的查看器计数,因此我可以自动更新它。因此,将api中的查看器计数编码并将其编码为json,然后可以提取所有值
<script type="text/javascript">
var viewers = <?= $viewers ?>;
var username = "<?= $username ?>";
var site_url = "<?= base_url() ?>";
var poll_interval = 3000;
</script>
<script type="text/javascript">
$(document).ready(function() {
$('#viewers').append(viewers);
setInterval(function(){
$.ajax({
url: site_url + "auto_update/broadcast/" + username,
type: "GET",
dataType: "json",
cache: false,
success: function(data) {
if (data == null) return;
var update_viewers = data['viewers'];
console.log(update_viewers);
$('#viewers').html(update_viewers);
}
});
}, poll_interval);
});
</script>
var=;
var username=“”;
var site_url=“”;
var poll_间隔=3000;
$(文档).ready(函数(){
$(“#查看器”).append(查看器);
setInterval(函数(){
$.ajax({
url:site\u url+“自动更新/广播/”+用户名,
键入:“获取”,
数据类型:“json”,
cache:false,
成功:功能(数据){
if(data==null)返回;
var update_viewers=数据['viewers'];
日志(更新查看器);
$('#viewers').html(更新#viewers);
}
});
},轮询间隔);
});
AJAX调用包含最新更新的查看器计数的函数,然后将其编码为json。我每3秒钟调用一次这个函数。如果附加了客户端ID,则不会受到速率限制。希望这能帮助别人
如果你有任何问题,请告诉我,我会尽力帮助你 您需要使用ajax调用获取查看器数量的脚本。这里没有“实时”这个词。您只能每隔一段时间对其进行轮询。您可以检查该站点是否对每分钟可以访问的次数有限制。我在读到,如果您提供
client\u id
,则调用API没有限制。如果我是通过AJAX来实现这一点的,那么我将如何编写代码来向这个特定函数发出AJAX请求呢。这个函数是我唯一需要检查间隔的函数。我正在努力确保代码尽可能干净,并且易于为其他想要使用我的脚本的人实现。这里有一个例子:如果这对请求有影响,这是CodeIgniter框架中的一个库,它使用MVC方法。您需要调用脚本,通过ajax获得查看者的数量。这里没有“实时”这个词。您只能每隔一段时间对其进行轮询。您可以检查该站点是否对每分钟可以访问的次数有限制。我在读到,如果您提供client\u id
,则调用API没有限制。如果我是通过AJAX来实现这一点的,那么我将如何编写代码来向这个特定函数发出AJAX请求呢。这个函数是我唯一需要检查间隔的函数。我正在努力确保代码尽可能干净,并且对于希望使用我的脚本的其他人来说易于实现。这里有一个例子:如果它对请求有影响,那么这就是CodeIgniter框架中的一个库,它使用MVC方法。