代码之家  ›  专栏  ›  技术社区  ›  Mark

python-如何使用ask_sdk_core.handler_输入在Alexa skill中获取用户ID

  •  0
  • Mark  · 技术社区  · 6 年前

    我正在研究一个玩具Alexa技巧,我在猜数字游戏中遵循这个例子。( code here )在这个例子中,他们

    from ask_sdk_core.handler_input import HandlerInput
    
    @sb.request_handler(can_handle_func=is_request_type("LaunchRequest"))
    def launch_request_handler(handler_input):
        """Handler for Skill Launch.
    
        Get the persistence attributes, to figure out the game state.
        """
        # type: (HandlerInput) -> Response
        attr = handler_input.attributes_manager.persistent_attributes
    

    attr 对象允许我在整个会话中保留信息。在Alexa开发人员控制台中,我在json的“session”:“attributes”下看到了这些数据——我还看到了“session”:“user”:“userid”

    如何访问 userId 使用此函数中的处理程序输入的数据?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Mark    6 年前

    因此,当您将处理程序输入中的数据转换为“dict”时,可以提取它

    step1 = handler_input.__dict__
    step2 = step1['request_envelope'].__dict__
    step3 = step2['session'].__dict__
    step4 = step3['user'].__dict__
    userid = step4['user_id']
    

    也许可以用更少的步骤来完成,但这正是它对我起作用的原因。