Я создал Webex Teams bot
, который использует веб-хуки для ответа, когда user
публикует сообщение в определенной Webex Teams group
.Тем не менее, в данный момент событие webhook не вызывает никаких действий.Я не уверен, является ли это ошибкой в конфигурации или ошибкой в моем коде.Я просто хотел бы установить базовую функциональность, поэтому на данный момент, когда user
отправляет сообщение, которое я хочу, "Успех !!"должен быть возвращен bot
.Если требуется какая-либо другая информация, пожалуйста, дайте мне знать.
function.py
token = 'token'
app = Flask(__name__)
@app.route("/",methods=['POST'])
def webhook():
json = request.json
message_id = json["data"]["id"]
user_id = json["data"]["personId"]
email = json["data"]["personEmail"]
room_id = json["data"]["roomId"]
print (message_id, file = sys.stdout)
print(user_id, file=sys.stdout)
print(email, file=sys.stdout)
print(room_id, file=sys.stdout)
if user_id != 'user_id':
global token
header = {"Authorization": "Bearer %s" % token}
get_rooms_url = "https://api.ciscospark.com/v1/messages/" + message_id
api_response = requests.get(get_rooms_url, headers=header, verify=False)
response_json = api_response.json()
message = response_json["text"]
print(message, file= sys.stdout)
print('******************', file=sys.stdout)
print ('Success!')
return "Success!"
else:
return "Ignore"
os.popen("pkill ngrok")
os.popen("ngrok http 5000 &")
time.sleep(5)
term_output_json = os.popen('curl http://127.0.0.1:4040/api/tunnels').read()
tunnel_info = json.loads(term_output_json)
public_url = tunnel_info['tunnels'][0]['public_url']
header = {"Authorization": "Bearer %s" % token, "content-type": "application/json"}
requests.packages.urllib3.disable_warnings()
post_message_url = "https://api.ciscospark.com/v1/webhooks"
payload = {
"resource": "messages",
"event": "all",
"targetUrl": public_url,
"name": "Webhook_Name"
}
api_response = requests.post(post_message_url, json=payload, headers=header, verify=False)
if api_response.status_code != 200:
print ('Webhook Registration Error!!')
exit(0)
if __name__ == '__main__':
app.run(host='localhost', use_reloader=True, debug=True)