Pythonを使用してプッシュオーバーから確認を取得しようとしても問題があります。
私のスクリプトでは、dict を使用して同じメッセージを 2 人に送信し、メッセージが確認されたら記録します。私がグループではなくこのようにしている理由は、1 人が承認すると残りの呼び出しがキャンセルされるため、1 人がそれを見て承認し、別の人が承認しない場合、グループのアラートが停止するためです。
これまでのところ、私のコードは両方の uid のメッセージを送信しますが、確認すると印刷されません
import time
import requests
import datetime
dict = {'u56pt7jQXxgmtGnX5MBgsnUz4kgqKS': 'User1', 'uoREW3cuvy3SbSnyc7Ra737nVbrBQh': 'user2'}
app = "app id"
for k in dict:
user = k
params = {
'token': app,
'user': user,
'title': 'lala',
'message': 'test',
'retry': 300,
'expire': 40,
'priority': 2 ,
'sound': 'siren',
}
msg = requests.post('https://api.pushover.net/1/messages.json', data=params)
print "POSTed message to " + k
json_data = msg.json()
print json_data['receipt']
time.sleep(5)
d = json_data['receipt']
v = requests.get("https://api.pushover.net/1/receipts/"+ d + ".json?token=" + app)
out = v.json()
while out['acknowledged'] is 0:
print "not yet" #placed for debugging
time.sleep(5)
v = requests.get("https://api.pushover.net/1/receipts/"+ d + ".json?token=" + app)
if out['acknowledged'] is 1:
ack = out['acknowledged_by']
for k in dict:
if ack in k:
acked = dict[k]
t = datetime.datetime.strftime(datetime.datetime.now(), '%H:%M')
print (acked + " acknowledged at " + t)
アップデート
以下に示すコードを使用すると、while ステートメントが再チェックされますが、それでも 2 番目の dict エントリのみが確認されます。
コードを見てみると、
v = requests.get("https://api.pushover.net/1/receipts/"+ d + ".json?token=" + app)
両方ではなく、2番目のdictエントリのみをチェックしています。