Я пытаюсь использовать api cloudflare для автоматического обновления записи SRV для сервера minecraft, который подвергается обратному проксированию через ngrok. То, что я сейчас делаю, это
get_ipython().system_raw(’./ngrok authtoken (authtoken) && ./ngrok tcp 25565 &’)
with urllib.request.urlopen(‘http://localhost:4040/api/tunnels’) as response:
data = json.loads(response.read().decode())
(host, port) = data[‘tunnels’][0][‘public_url’][6:].split(’:’)
print(port, host)
subprocess.check_output([‘bash’,‘flare.sh’, port, host])
Внутренний отбортованный. sh is
-H “X-Auth-Email: *******@********.com”
-H “X-Auth-Key: 00000000000000”
-H “Content-Type: application/json”
–data ‘{“type”: “SRV”, “data”: {“service”: “_minecraft”, “proto”: “_tcp”, “name”: “mc”, “priority”: 1, “weight”: 5, “port”: $1, “target”: “$2”}}'```
Однако это возвращает
{“result”:null,“success”:false,“errors”:[{“code”:9207,“message”:“Failed to parse request body, content-type must be application/json”}],“messages”:}
Я знаю, что есть способ получить доступ к api через python, но я не уверен, как это сделать (не знаю программирования). Скрипт bash также работает правильно, когда я запускаю его и заменяю значения $ 1 и $ 2 правильными портами и целевыми значениями. <- кстати, был перенаправлен сюда из cloudflare. </p>