我尝试在docker上用wickr的机器人云、一台阿尔卑斯python机器和redis制作一个机器人。这是我的三项服务。 我在docker的文档dns上看到使用服务名称解决IpAdress。 但当我从python_应用程序服务向ickr_io服务发送post请求时。 什么都没发生
docker-compose.yml
version: "3.3"
networks:
mynetwork:
services:
ickr_io:
image: wickr/bot-cloud:5.88.06.01
restart: always
volumes:
- /opt/WickrIO:/opt/WickrIO
stdin_open: true
tty: true
ports:
- "4001"
networks:
- mynetwork
python_app:
build:
context: ./python_
depends_on:
- ickr_io
- redis
networks:
- mynetwork
volumes:
- /opt/WickrIO:/opt/WickrIO
ports:
- "5000"
redis:
image: redis
ports:
- "6379"
networks:
- mynetwork
我的python文件:
bot_api_server_ip = "ickr_io"
bot_api_server_port = "4001"
bot_api_key = 'apikey'
bot_secret_encoded = "secret_encoded"
bot_callback_ip = "python_app"
bot_callback_port = "5000"
user_redis = redis.StrictRedis(host='redis', port=6379,db =0,decode_responses=True)
product_redis = redis.StrictRedis(host='redis', port=6379,db=1,decode_responses=True)
def botSetCallbackURL():
bot_web_interface_URL = f"http://{bot_api_server_ip}:{bot_api_server_port}/WickrIO/V1/Apps/{bot_api_key}"
bot_headers = {'Accept': '*/*', 'Content-Type': 'application/json', 'Authorization': f'Basic {bot_secret_encoded}'}
bot_callback_url = f"http://{bot_callback_ip}:{bot_callback_port}/callback"
bot_callback_payload = {'callbackurl': f'{bot_callback_url}'}
bot_msgrecv_callback_url = bot_web_interface_URL + "/MsgRecvCallback"
attempts = 1
while True:
try:
setMsgRecvCallback = requests.post(bot_msgrecv_callback_url, headers=bot_headers, params=bot_callback_payload)
print("Setting Callback URL")
getMsgRecvCallback = requests.get(bot_msgrecv_callback_url, headers=bot_headers)
callbackStatus = "Callback POST Response :", setMsgRecvCallback.text, " Callback GET Response :", getMsgRecvCallback.text
print(callbackStatus)
break
except Exception as e:
time.sleep(1)
attempts += 1
print(e, "\nError setting Callback URL!!! Try #", attempts)
if attempts == 3600:
break
else:
print("ERROR SETTING CALLBACK URL!!!!!!!!!!!!!!!!!!!!!!!NO MORE RETRIES!!!!!!!!!!!!!!!!!!!!!!!!")
botSetCallbackURL()
app = Flask(__name__)
@app.route('/callback', methods=['POST'])
...
目前没有回答
相关问题 更多 >
编程相关推荐