def handle(self, handler_input): language_prompts = handler_input.attributes_manager.request_attributes[ "_"] skill_name = language_prompts["SKILL_NAME"] account_linking_token = get_account_linking_access_token(handler_input) if account_linking_token is not None: url = "https://api.amazon.com/user/profile?access_token={}".format( account_linking_token) user_data = requests.get(url).json() user_name = user_data['name'] speech_output = random.choice( language_prompts["GREETING"]).format(user_name) reprompt = random.choice(language_prompts["GREETING_REPROMPT"]) card_data = SimpleCard(skill_name, speech_output) else: speech_output = random.choice( language_prompts["GREETING_UNKNOWN_USER"]).format(skill_name) reprompt = random.choice( language_prompts["GREETING_UNKNOWN_USER_REPROMPT"]) card_data = LinkAccountCard() return (handler_input.response_builder.speak(speech_output).ask( reprompt).set_card(card_data).response)
def handle(self, handler_input): # type: (HandlerInput) -> Response account_linking_token = get_account_linking_access_token(handler_input) if account_linking_token is not None: #language_prompts = handler_input.attributes_manager.request_attributes["_"] #skill_name = language_prompts["SKILL_NAME"] url = "https://api.amazon.com/user/profile?access_token={}".format(account_linking_token) user_data = requests.get(url).json() user_name = user_data['name'] speech_output = f'Hello {user_name}' reprompt = f'I said, Hello {user_name}' #speech_output = random.choice(language_prompts["GREETING"]).format(user_name) #reprompt = random.choice(language_prompts["GREETING_REPROMPT"]) #card_data = SimpleCard(skill_name,speech_output) card_data = SimpleCard(speech_output) else: logger.info("No account linking : {}") speech_text = "Link your account first." return handler_input.response_builder.speak(speech_text).set_card( SimpleCard( "Account not linked")).response #return handler_input.response_builder.set_card(Card('LinkAccount')) #speech_output = random.choice(language_prompts["GREETING_UNKNOWN_USER"]).format(skill_name) #reprompt = random.choice(language_prompts["GREETING_UNKNOWN_USER_REPROMPT"]) #card_data = LinkAccountCard() return ( handler_input.response_builder .speak(speech_output) .ask(reprompt) .set_card(card_data) .response )
def test_get_account_linking_access_token(self): test_input = self._create_handler_input( request=self.test_launch_request) self.assertEqual( get_account_linking_access_token(handler_input=test_input), self.test_access_token, "get_account_linking_access_token method returned incorrect " "access token from input request")
def _fetch_token(self, handler_input): return ask_utils.get_account_linking_access_token(handler_input)