我希望能够在Telegram中向群聊发送消息.我想运行一个python脚本(这使得一些操作已经有效)然后,如果某些参数有一些值,脚本应该通过Telegram向群聊发送消息.我使用的是Ubuntu和Python 2.7
我想,如果我没有错,我有两种方法可以做到:
方法一:使Python脚本直接连接到Telegram API并发送消息(https://core.telegram.org/api).
方法二:让Python脚本调用Telegram的CLI(https://github.com/vysheng/tg),将一些值传递给它,然后通过Telegram的CLI发送消息.
我认为第一种方式更长,所以一个好主意可能是使用Way Two.
在这种情况下,我真的不知道如何继续.我不太了解linux中的脚本,但我试着这样做:
#!/bin/bash
cd /home/username/tg
echo "msg user#******** messagehere" | ./telegram
sleep 10
echo "quit" | ./telegram
Run Code Online (Sandbox Code Playgroud)
这工作在一半:它正确地发送消息,但然后该过程保持打开状态.第二个问题,我不知道如何从python调用它以及如何将一些值传递给这个脚本.我想传递给脚本的值是"messagehere"var:这将是一个100/200字符的消息,从python脚本中定义.
有人有任何线索吗?感谢您的回复,我希望这可能对其他人有用.
我试图将我用Python编写的一段代码重写为Delphi.Python代码是:
url = "https://www.bitstamp.net/api/ticker/"
response = urllib.urlopen(url)
data = json.loads(response.read())
lastvalue = data['last']
Run Code Online (Sandbox Code Playgroud)
这足以将名为"lastvalue"的变量分配给我从bitstamp的API获得的值.
我想用delphi做同样的事情(我使用的是delphi XE6).我试着在这里找到一些答案,我能够连接到bitstamp的网站并获得完整的字符串,通过这样做:
function GetURLAsString(const aurl: string): string;
var
lHTTP: TIdHTTP;
begin
lHTTP := TIdHTTP.Create(nil);
try
lHTTP.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(lHTTP);
Result := lHTTP.Get(aURL);
finally
lHTTP.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
然后我用这个调用这个函数:
procedure TForm2.Button1Click(Sender: TObject);
var
mydata : string;
begin
mydata := GetURLAsString('https://www.bitstamp.net/api/ticker/');
Label1.Text := mydata;
end;
Run Code Online (Sandbox Code Playgroud)
我被困在这里 我搜索了很多,但我无法弄清楚如何分配给Label1.Text只是分配给"last"的值.
当我运行它时,我被{"high": "629.40", "last": "622.00", "timestamp": "1401544416", "bid": "621.99", "vwap": "617.47", "volume": "15147.30475739", "low": "602.26", "ask": "622.00"}分配到Label1.Text.
我希望我能够解释这个问题.我在这一点上真的陷入了困境,我希望有人可以帮助我.
python ×2
delphi ×1
delphi-xe ×1
httprequest ×1
json ×1
linux ×1
python-2.7 ×1
shell ×1
telegram ×1