控制 Roku 盒子的脚本不起作用

Script to control Roku box not working

可以通过一个简单的 RESTful 服务从外部控制 Roku 盒子,该服务通过端口 8060 see here 上的 http 协议访问。我需要执行的命令是通过 POST 发送的,没有正文。他们提供命令行 curl 示例,例如:

$ curl -d '' http://192.168.1.134:8060/keypress/home

我需要将其编写为 PHP 脚本,它将执行一系列操作:keypress/home、launch/appid、keypress/select、keypress/right、 keypress/right、keypress/select。

请参阅下文,了解我为一个命令想出的结果。两个问题:

1) 我的 Roku 没有对此做出响应,所以我做错了什么?
2) 一个接一个发送多个 POST 请求的最佳方式是什么?

<?php
$ch = curl_init('http://192.168.1.134:8060/keypress/home');
$data = '';

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
curl_close($ch);
?>

按照您尝试执行此操作的方式,您的 web/PHP 服务器应该能够直接访问您的 Roku,但通常情况并非如此。服务器是否在同一网络 192.168.1.* 上?

尝试 http://remoku.tv/ 看看您的 Roku 是否可以直接从浏览器控制。

我找到了更好的方法,客户端 javascript。

<script>
function post1() {
xhr = new XMLHttpRequest(); 
xhr.onload=function()
{
    alert(xhr.responseText);
}
xhr.open("POST", "http://192.168.1.134:8060/keypress/home");
xhr.send(); 
}
</script>
<body onload="post1()">