Python - How to obtain UserID in Alexa Skill using ask_sdk_core.handler_input
I'm working on a toy Alexa skill and I'm following the example in the Number Guessing Game (code here). In the example they
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
this attr
object allows me to persist information across the session. In the Alexa Developer console I see this data in the JSON under 'session':'attributes' - I also see 'session':'user':'userId'
How do I access the userId
data using the handler_input in this function?
python alexa-skills-kit
add a comment |
I'm working on a toy Alexa skill and I'm following the example in the Number Guessing Game (code here). In the example they
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
this attr
object allows me to persist information across the session. In the Alexa Developer console I see this data in the JSON under 'session':'attributes' - I also see 'session':'user':'userId'
How do I access the userId
data using the handler_input in this function?
python alexa-skills-kit
add a comment |
I'm working on a toy Alexa skill and I'm following the example in the Number Guessing Game (code here). In the example they
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
this attr
object allows me to persist information across the session. In the Alexa Developer console I see this data in the JSON under 'session':'attributes' - I also see 'session':'user':'userId'
How do I access the userId
data using the handler_input in this function?
python alexa-skills-kit
I'm working on a toy Alexa skill and I'm following the example in the Number Guessing Game (code here). In the example they
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
this attr
object allows me to persist information across the session. In the Alexa Developer console I see this data in the JSON under 'session':'attributes' - I also see 'session':'user':'userId'
How do I access the userId
data using the handler_input in this function?
python alexa-skills-kit
python alexa-skills-kit
asked Jan 2 at 23:44


MarkMark
2,79511934
2,79511934
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
You can actually get it from 2 places:
user_id = handler_input.request_envelope.session.user.user_id
or
user_id = handler_input.request_envelope.context.system.user.user_id
It's not necessary to convert the objects to dictionaries
add a comment |
So the data in the handler_input can be extracted when you convert it to a 'dict'
step1 = handler_input.__dict__
step2 = step1['request_envelope'].__dict__
step3 = step2['session'].__dict__
step4 = step3['user'].__dict__
userid = step4['user_id']
It may be possible to do it in fewer steps, but this is what got it working for me.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54014635%2fpython-how-to-obtain-userid-in-alexa-skill-using-ask-sdk-core-handler-input%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You can actually get it from 2 places:
user_id = handler_input.request_envelope.session.user.user_id
or
user_id = handler_input.request_envelope.context.system.user.user_id
It's not necessary to convert the objects to dictionaries
add a comment |
You can actually get it from 2 places:
user_id = handler_input.request_envelope.session.user.user_id
or
user_id = handler_input.request_envelope.context.system.user.user_id
It's not necessary to convert the objects to dictionaries
add a comment |
You can actually get it from 2 places:
user_id = handler_input.request_envelope.session.user.user_id
or
user_id = handler_input.request_envelope.context.system.user.user_id
It's not necessary to convert the objects to dictionaries
You can actually get it from 2 places:
user_id = handler_input.request_envelope.session.user.user_id
or
user_id = handler_input.request_envelope.context.system.user.user_id
It's not necessary to convert the objects to dictionaries
answered Mar 26 at 20:59


Nicolò GaspariniNicolò Gasparini
512720
512720
add a comment |
add a comment |
So the data in the handler_input can be extracted when you convert it to a 'dict'
step1 = handler_input.__dict__
step2 = step1['request_envelope'].__dict__
step3 = step2['session'].__dict__
step4 = step3['user'].__dict__
userid = step4['user_id']
It may be possible to do it in fewer steps, but this is what got it working for me.
add a comment |
So the data in the handler_input can be extracted when you convert it to a 'dict'
step1 = handler_input.__dict__
step2 = step1['request_envelope'].__dict__
step3 = step2['session'].__dict__
step4 = step3['user'].__dict__
userid = step4['user_id']
It may be possible to do it in fewer steps, but this is what got it working for me.
add a comment |
So the data in the handler_input can be extracted when you convert it to a 'dict'
step1 = handler_input.__dict__
step2 = step1['request_envelope'].__dict__
step3 = step2['session'].__dict__
step4 = step3['user'].__dict__
userid = step4['user_id']
It may be possible to do it in fewer steps, but this is what got it working for me.
So the data in the handler_input can be extracted when you convert it to a 'dict'
step1 = handler_input.__dict__
step2 = step1['request_envelope'].__dict__
step3 = step2['session'].__dict__
step4 = step3['user'].__dict__
userid = step4['user_id']
It may be possible to do it in fewer steps, but this is what got it working for me.
answered Jan 8 at 15:35


MarkMark
2,79511934
2,79511934
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54014635%2fpython-how-to-obtain-userid-in-alexa-skill-using-ask-sdk-core-handler-input%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown