我正在尝试运行此处提供的代码:-running websocket in google sheet without using HTML code
这是html页面-
<!DOCTYPE html>
<meta charset="utf-8" />
<head>
<script language="javascript" type="text/javascript">
var wsUri = ("wss://stream.binance.com:9443/ws/btcusdt@kline_1m");
<? var myparam = param(); ?>
function init() {
websocket = new WebSocket(wsUri);
websocket.onopen = function(evt) { onOpen(evt) };
websocket.onclose = function(evt) { onClose(evt) };
websocket.onmessage = function(evt) { onMessage(evt) };
websocket.onerror = function(evt) { onError(evt) };
nbr=0;
}
function onOpen(evt) {
//doSend(<?= myparam ?>);
}
function onClose(evt) {
}
function onMessage(evt) {
google.script.run.getJSON( evt.data );//evt.data is an object
}
function onError(evt) {
}
function doSend(message) {
websocket.send(message);
}
window.addEventListener("load", init, false);
window.addEventListener("beforeunload", websocket.close, false);
</script>
</head>
<body></body>
</html>
这是调用此客户端JavaScript的应用程序脚本代码
function modal() {
var html = HtmlService
.createTemplateFromFile("index")
.evaluate()
.setWidth(100)
.setHeight(50);
SpreadsheetApp.getUi().showModelessDialog(html, 'web socket');
}
这些是同一应用程序脚本中的其他功能-
const sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('derCotation');
function param(){
var valeurs = sh.getRange('B3:B'+sh.getLastRow()).getValues().join().split(",")
var myparams = {"method": "SUBSCRIBE", "params": valeurs, "id": 1}
return JSON.stringify(myparams)
}
function getJSON(jsonstring){//this is receiving an object not a string
try{
var data = JSON.parse(jsonstring);//this is parsing an object not a strig
var pairs = sh.getRange('A3:A').getValues().join().split(",");
var ligne = pairs.indexOf(data.k.s);
if (ligne != -1){
var result=[]
result.push([ data.k.o , data.k.c , data.k.h , data.k.l ])
sh.getRange('C' + (ligne+3) + ':F' + (ligne+3)).setValues(result)
}
}
catch(e){
}
}
脚本正在运行,但google.script.run.getJSON( evt.data );
不工作。可能是什么问题?
我测试了错误,但没有任何错误。我观察到这里的getJSON()
函数google.script.run.getJSON( evt.data );
没有被调用。
1条答案
按热度按时间s3fp2yjn1#
试着这样做: