def create_skill(): skill_adapter = SkillAdapter( skill=sb.create(), skill_id="amzn1.ask.skill.bd7515ac-93e7-48c6-b2b5-58dcd0fb0951", app=app) # Déclaration de la route skill_adapter.register(app=app, route="/alexa")
def create_app(): print("************** create_app") app = Flask(__name__) skill_adapter = SkillAdapter( skill=sb.create(), skill_id="amzn1.ask.skill.bd7515ac-93e7-48c6-b2b5-58dcd0fb0951", app=app) skill_adapter.register(app=app, route="/alexa") return app
def test_register_url_rule_with_endpoint(self): mock_app = mock.MagicMock(Flask) test_skill_adapter = SkillAdapter( skill=self.mock_skill, skill_id=self.skill_id) test_skill_adapter.register(app=mock_app, route="/", endpoint="test") mock_app.add_url_rule.assert_called_with( "/", endpoint="test", methods=['POST'], view_func=test_skill_adapter.dispatch_request)
def test_register_url_rule_no_route_throw_exception(self): test_skill_adapter = SkillAdapter( skill=self.mock_skill, skill_id=self.skill_id) with self.assertRaises(TypeError) as exc: test_skill_adapter.register(app=self.test_app, route=None) self.assertIn( "Expected a valid URL rule string", str(exc.exception), "register method didn't throw exception when no route was passed")
def test_register_url_rule_no_app_throw_exception(self): test_skill_adapter = SkillAdapter( skill=self.mock_skill, skill_id=self.skill_id) with self.assertRaises(TypeError) as exc: test_skill_adapter.register(app=None, route="/") self.assertIn( "Expected a valid Flask instance", str(exc.exception), "register method didn't throw exception when no app was passed")
# defined are included below. The order matters - they're processed top to bottom. @app.route('/ddog/webhook') def alert(payload): return payload sb = SkillBuilder() sb.add_request_handler(LaunchRequestHandler()) sb.add_request_handler(GetMetricsIntentHandler()) sb.add_request_handler(HelpIntentHandler()) sb.add_request_handler(CancelOrStopIntentHandler()) sb.add_request_handler(SessionEndedRequestHandler()) # make sure IntentReflectorHandler is last so it doesn't override your custom intent handlers sb.add_request_handler(IntentReflectorHandler()) sb.add_global_request_interceptor(LocalizationInterceptor()) sb.add_exception_handler(CatchAllExceptionHandler()) skill_response = SkillAdapter( skill=sb.create(), skill_id="amzn1.ask.skill.1fd6a485-84ff-406c-aba1-75007ce3df11", app=app) skill_response.register(app=app, route="/") if __name__ == '__main__': app.run()
@sb.exception_handler(can_handle_func=lambda i, e: True) def all_exception_handler(handler_input, exception): """Catch all exception handler, log exception and respond with custom message. """ # type: (HandlerInput, Exception) -> Response logger.error(exception, exc_info=True) speech = "Sorry, there was some problem. Please try again!!" handler_input.response_builder.speak(speech).ask(speech) return handler_input.response_builder.response #handler = sb.lambda_handler() skill_adapter = SkillAdapter( skill=sb.create(), skill_id="amzn1.ask.skill.6fbbb190-9c92-4a5f-bfb6-fd9ec2d8c860", app=app) skill_adapter.register(app=app, route="/") # @app.route("/") # def invoke_skill(): # print("invokte_skill") # return skill_adapter.dispatch_request() if __name__ == '__main__': app.run(debug=True, port=8050)
else: speech_text = 'Passenger {} is not on the manifest.'.format(hostname) return handler_input.response_builder.speak(speech_text).response @skill_builder.request_handler(can_handle_func=is_request_type('SessionEndedRequest')) def session_ended_request_handler(handler_input): return handler_input.response_builder.response @skill_builder.global_request_interceptor() def request_logger(handler_input): app.logger.debug('Request received: {}'.format(handler_input.request_envelope.request)) @skill_builder.global_response_interceptor() def response_logger(handler_input, response): app.logger.debug('Response generated: {}'.format(response)) skill_response = SkillAdapter(skill=skill_builder.create(), skill_id=config['applicationId'], app=app) skill_response.register(app=app, route='/') if __name__ == '__main__': app.run(host = '0.0.0.0', debug = True)
@skill_builder.exception_handler(can_handle_func=lambda i, e: True) def all_exception_handler(handler_input, exception): # """Catch all exception handler, log exception and # respond with custom message. # """ # type: (HandlerInput, Exception) -> Response logger.error(exception, exc_info=True) speech = "Sorry, there was some problem. Please try again!!" handler_input.response_builder.speak(speech).ask(speech) return handler_input.response_builder.response # skill_id="amzn1.ask.skill.e909e9d9-3ad7-4563-bbfe-ec0247ab3f7a" skill_adapter = SkillAdapter(skill=skill_builder.create(), skill_id=10, app=app) skill_adapter.register(app=app, route="/moveplan") @app.route('/heartbeat') def default_route(): """Default route to return a simple message""" return jsonify('hi! I am alive') if __name__ == "__main__": app.run(host='0.0.0.0', debug=True)