Alexa Skill working on amazon.developer console test but not working in beta-testing for alexa App - alexa

I am currently in development mode for the skill. It is using Lambda endpoint. The skill is working in https://developer.amazon.com/alexa/console/ask/test/
When I sent invites for Beta testing and followed the Beta testing instructions on a different (email account with Alexa), the application is giving “Unexpected communication issue: There was a problem communicating with the requested skill”
Request identifier: amzn1.echo-api.request.[some-id]
I am not getting any logs in CloudWatch for my Lambda function
[Update] More info:
The skill is available in all countries and regions where Amazon distributes skills.
This is a dummy skill, with only one intent, triggered by a command like this Alexa open mySkill and tell me a new fact, after which the control passes on to Lambda function which selects a fact string randomly from an array.

Solved it finally. The problem was mainly due to 2 reasons:
I had created multiple skills (for testing) and didn't noticed that
they had similar invocation words (silly me :/ ). One of them was
pointing to an older AWS account. Thanks #ChuckLaPress for the hint.
Language settings. I had used the default en-US language and was trying from India. Solved it by including support for all other english languages. Details here.

Related

Amazon Alexa doesn't open the skill developed by me( on the device)

I have a problem with Amazon Alexa.
I have started to develop a small skill in Alexa Developer Console.
Everything works perfectly when I test it in that console, but when I tell to Alexa device to open my skill. It tell me "I don't know about that".
I don't understand why, the email address is the same for the Developer Console and for the device. I'm sure that the invocation is correct. I tried to disable and enable the skill from the AlexaApp, but it still doesn't work.
Any ideas? Thank you!
It could be an internal recognition issue from the invocation name.
What I recommend you to do:
Change the invocation name by something very simple ex: Test four
Save the model and Build the model
Try open Test four in the developer console
Try open Test four on the device
If open Test four doesn't work on the device, relogin on the Alexa app with the same email as the developer console and resync the device. Make sure the app is enabled.
If it work with test four it means that the invocation name you choosed previously is not properly recognized by Alexa. You should keep it as simple as possible or ask the support to improve the recognition of it.

Codename One Preferences/Storage permissions

I have developed and published an app in Google Play Store, which only send simple String request to REST API and store the results in the Preferences. The same app is also submitted to Windows Store for publication, however it was rejected due to the following reason:
The app declares use of the sensitive capability [musicLibrary, picturesLibrary, videosLibrary] without appearing to access the declared capability. Please removed the sensitive capability declaration and re-submit the app.
Upon inspection to Google Play Store submission, I noticed the same permissions are requested:
This app has access to:Photos/Media/Filesread the contents of your USB storagemodify or delete the contents of your USB storageStorageread the contents of your USB storagemodify or delete the contents of your USB storageOtherreceive data from Internetview network connectionsfull network accessprevent device from sleeping
So my question is, do Preferences really need these permissions, or can I set some kind of build hints to remove these permission requests, especially for UWP build? I have also tried to set android.blockExternalStoragePermission build hint, but the permissions are still requested in Android build. I have yet to try iOS build since currently I don't have Apple Developer account.
Thank you very much in advance.
Edit #1 (23/10/2018):
Upon further inspection, I found that I have mistakenly uploaded the version that didn't declare android.blockExternalStoragePermission to Google Play Store, so all good on Android version.
Currently I'm not using any of cn1libs, and here's the list of all classes imported in my application:
java.util.HashMapjava.util.Mapjava.util.Randomcom.codename1.components.InfiniteProgresscom.codename1.components.ToastBarcom.codename1.components.ToastBar.Statuscom.codename1.io.CharArrayReadercom.codename1.io.JSONParsercom.codename1.io.Logcom.codename1.io.NetworkManagercom.codename1.io.Preferencescom.codename1.io.rest.Responsecom.codename1.io.rest.Restcom.codename1.l10n.L10NManagercom.codename1.ui.Buttoncom.codename1.ui.Componentcom.codename1.ui.Containercom.codename1.ui.Dialogcom.codename1.ui.FontImagecom.codename1.ui.Formcom.codename1.ui.Labelcom.codename1.ui.events.ActionEventcom.codename1.ui.events.ActionListenercom.codename1.ui.layouts.BorderLayoutcom.codename1.ui.layouts.FlowLayoutcom.codename1.ui.layouts.GridLayoutcom.codename1.ui.plaf.Bordercom.codename1.ui.plaf.Stylecom.codename1.ui.plaf.UIManagercom.codename1.ui.util.Resources
So my original question remain, how do I set the build hints to prevent the same external storage read/write permission in Windows and iOS?
See the section titled "Android Permissions" here, for a list of some API's that might trigger extra permissions. I suggest extracting the manifest from the XML and inspecting it. It should include two permissions based on your description you should have two permissions there:
android.permission.WRITE_EXTERNAL_STORAGE - which you should have been disabled when you applied android.blockExternalStoragePermission
android.permission.INTERNET - this one you actually need
I'm assuming you have a permission for media access and here it becomes a question of where it came from?
Did you use a cn1lib that might include a feature that triggers this?
Do you have a feature in the app that isn't active yet?
Once you have the specific name or results of this investigation comment here and I'll revise the answer with more details.

Unable to activate test stimulator for alexa skill

I have been into alexa development and recently I have encountered a never before situation. While trying to enable testing on a new skill, I am getting the following error on the test tab :
There was a failure enabling your skill, please try again.
I know that this might happen if I do not complete the previous steps such skill information, interaction model, configuration etc. But the strange thing is that i have completed all of the above steps. My skill has :
A valid skill name
It has valid intents, slots and sample utterrances in my interaction
model
I have successfully saved and built my interaction model
I have provided valid end-points ARN of my AWS lambda function, which has
alexa-skill-kit enabled with the skill-id of my skill, in the configuration tab.
I don't think I have missed any of the requirement as it shows green tick(successful completion) on all mentioned steps before testing. But I can not enable the test stimualtaor in the test tab. It throws the above mentioned error message.
Any help will be highly appreciated. Thanks!!
Go to the "build" tab in your Alexa Skill page. On the right side, you will find "Skill Builder Checklist". Make sure that all steps in the checklist are completed.
Thanks
Visit the invocation tab in Alexa Skill Kit Developer console. All Skill builder checklist have to be complete to start the test.
Don't forget to build your skill before run test.
In EndPoint -> click Save Endpoints, if it successful then in Test, you can see Test is enabled for this skill ( in blue color).

Trying to code sign Mac app with Developer ID - get com.apple.developer.maps entitlement is not allowed (error code -67050)

I am code signing a Mac app using my Developer ID certificate so we can send it to beta testers. Thanks to helpful articles here I made sure I have the right certificate and private key. (This is a new app id) When I select Developer ID and Archive, I select to distribute with Developer ID and it validates all the checks successfully (Using Xcode 6.1) and creates my app file. When I launch it I crash with this in console (another great tip found here to check console for the REAL error):
killed com.[appname.OSX][pid 5946] because its use of the com.apple.developer.maps entitlement is not allowed (error code -67050)
11/7/14 11:26:23.263 com.apple.xpc.launchd[1]: (com.VIPorbit.OSX.192016[5946]) Binary is improperly signed.
So, I know the docs say you cannot distribute an app with Maps outside of the MacApp Store, but I assume this mean selling Mac apps as is often done. We are using the Mac App Store all the way. Also I can successfully archive and submit to the Mac App Store and we're in review.
The challenge is we want to get this out to some beta folks and Maps is a key feature we've added. I really don't want to go the old route with getting this Mac info and adding it to the provisioning file, defeats the purpose of the Developer ID option.
Anyone else experience this?
You can't distribute an application utilizing MapKit with a Developer ID.
MapKit is an Mac App Store-only feature.
It's a shame that this is not clear from the documentation.
If you want to test the app before the Mac App Store submission, I am afraid you have to add beta-testers' machines to the provisioning profile and sign the bundle with a "Mac Developer: ..." code signing identity.
😔

Creating a channel for webRTC video chat

I've been following the HTML5rocks webRTC guide and I have the Javascript set up as described, however the guide is not clear on how to receive a channelToken, roomKey, and User ID. The guide says,
"Note that values used in the JavaScript, such as the room variable and
the token used by openChannel(), are provided by the Google App Engine
app itself: take a look at the index.html template in the repository
to see what values are added."
Unfortunately the link provided is no good and I'm left with very little information regarding the most essential step in this process. The guide isn't clear about whether or not the Google App Engine is a necessary component and I don't see why it should be. I have searched the web in an attempt to find a more useful source, but I was unsuccessful. I also took a look at the webRTC Demo(https://apprtc.appspot[dot]com), that too was no help seeing that the channel information is generated server side. I feel like I should just be able to make a simple http request to some Google server and then run from there. Any information regarding my problem would be much appreciated.
Apologies: the code for this example has been moved to here.
(Been meaning to update the article, but haven't had a chance...)
The apprtc.appspot example uses the Channel API on App Engine for signaling, but there are lots of other ways to do this. Signaling mechanisms are not defined by the WebRTC spec. (Note that signaling, which is accomplished via a signaling service, is the exchange of network and media metadata in order to set up a WebRTC 'call': the actual data is communicated directly between peers.)
We ran a codelab at Google I/O, which describes from start to finish how to build a video chat application that uses Socket.io on Node.js for signaling (it's very simple!) You might want to try that instead.

Resources