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)
예제 #2
0
 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")
예제 #4
0
 def _fetch_token(self, handler_input):
     return ask_utils.get_account_linking_access_token(handler_input)