【问题标题】:How to authenticate with Sony Bravia TV IP Control without preshared key如何在没有预共享密钥的情况下使用 Sony Bravia TV IP Control 进行身份验证
【发布时间】:2019-09-01 11:56:52
【问题描述】:

本指南 (https://pro-bravia.sony.net/develop/integrate/ip-control/) 介绍了如何使用 IP 控制 API,方法是在电视菜单中设置预共享密钥,并在请求中发送带有标头 (X-Auth-PSK: [Pre-Shared Key]) 的该密钥。

除我之外的其他应用程序在网络上发现我的电视,并且(一次)在电视上弹出一个 pin,然后由用户在客户端输入(如远程应用程序)。此身份验证流程如何工作?我怎样才能自己实现它?

【问题讨论】:

    标签: api authentication sony


    【解决方案1】:

    您可以通过执行以下代码来调用auth,首先在浏览器中打开一个选项卡并输入您的电视的IP地址,这样当您通过控制台执行此代码时就不会出现CORS错误。

    var tvIPAddress = '192.168.0.16'; // the IP of the TV
    var id = 1001; // random integer number ( that will be assigned to your control device )
    
    var xhr = new XMLHttpRequest();
    xhr.open('POST', 'http://'+tvIPAddress+'/sony/accessControl');
    xhr.send(JSON.stringify(
    {method: "actRegister",
      version: "1.0",
      id: id,
      params: [{ clientid: "DEVICE NAME: RANDOM-CLIENT-ID-XXXXXXXXXX" , nickname: "YOUR-DEVICE-NAME" },[{function:"WOL",value:"no"}]]
      }
    ));

    然后在弹出窗口中输入电视的 PIN 码作为密码。将用户名字段留空。

    然后你可以像这样发送 IRCC 命令:

    var code = "AAAAAQAAAAEAAAASAw=="; // volume up
    
    xhr.open('POST', 'http://192.168.0.16/sony/IRCC');
    xhr.setRequestHeader('SOAPACTION', "urn:schemas-sony-com:service:IRCC:1#X_SendIRCC");
    xhr.send('<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:X_SendIRCC xmlns:u="urn:schemas-sony-com:service:IRCC:1"><IRCCCode>'+code+'</IRCCCode></u:X_SendIRCC></s:Body></s:Envelope>');

    您可以在此处找到更多信息: https://pro-bravia.sony.net/develop/integrate/ircc-ip/overview/index.html

    【讨论】:

    • 不错的答案,但在描述此过程的文档中找不到任何内容..
    猜你喜欢
    • 2012-08-11
    • 2022-09-23
    • 2022-01-03
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 2022-11-30
    相关资源
    最近更新 更多