I'm building an app for the Echo that will integrate into their car. This means that they need to associate their car with the UserID of their Echo. Unfortunately, I don't see a way in the API today to actually get something like an email address for a user in order to send them an activation email or some such. -- When a skill is added, can we prompt the user to provide us some login data? I noticed that the user IDs looked an awful lot like "Login with Amazon" IDs. Can we say, require the user to "Login with Amazon" on our site after they add the skill, and then store a mapping of UserIDs->ProfileData, and if we can't resolve them, direct them to the site? How are other skills like Pandora handling this?
Yes, your idea is exactly how it should be done. Login with Amazon on your web site, where the user will enter their customization details. It is against Amazon's rules to have the user enter personal information like email addresses or passwords via voice. The other option is to give them a unique code over the Echo, like "ABCD". Then they go to the web site and enter that code, which allows you to link them up without using Login with Amazon.
First off, Pandora is not a skill. It's a default service provided with the Echo. They get their own special rules and abilities. The only thing available through the ASK is the user ID. It's guaranteed to be consistent, but nothing else. If you want to link that with something else, your skill has to do that. Either from within the skill (good luck getting someone to dictate an e-mail address!) or more likely integrating to your own web app, which you then query their outside info from. (Note, when you've done this, you need to check off the "Account Linking or Creation" option when certifying your skill.) Have you seen how you can use Firefox to sync between devices and machines? That's a good model. I give a few more details in my book (plug!
http://www.amazon.com/How-Program-Amazon-Echo-Development-ebook/dp/B011J6AP26 ), but that's the gist of it.