How to repeatedly start an Alexa Skill in a certain timeframe - automation

​Hi people!
I hope someone can help me out:
I'm searching for whether (and if, then how) it's possible for a skill to start at a certain time, ask questions e.g. every 90 minutes and stop at a certain time.
Scenario would be:
"Alexa, please start my Survey at 9 AM and stop at 8 PM for 7 days. Ask me every 90 minutes."
And the skill would then activate every 90 minutes in the selected timeframe, ask a question that would e.g. be answered with yes/no and why and then stop after 7 days.
Hope I explained my problem well enough for you to understand what I want to do.
Thank you very much for your help!
Have a nice day,
Lama

It is not possible to invoke any Alexa skill from back-end. The obvious reason for that is that Alexa is completely based on user initiated conversation and this feature violates the privacy of the user. Even the notifications service that Amazon is bring to Alexa device soon does not invoke Alexa device, it will just show a yellow light ring on devices to show that there is a pending notification for the user.

Related

How to test DST change with calendar events

I have a system that sends ICS to plant events in our customers calendars. Of course, it blew up when we moved to winter time, all events planned before the switch are now offset by one hour.
There are plenty of fixes for me to try out on this very website, it is not my question.
Now, how do I test them ? I tried scheduling an event for next summer (with the unpatched system) and it landed at the right time in my gmail calendar, hinting that the problem only happens at the moment of the time change (9 days ago for me)
So what I need is reproduce "the time change", but I have no clue how to do that. Whether it's summer time or not is decided by Google or Microsoft, I can't really simulate anything on my live calendar...
Any help would be greatly appreciated. (And that's just for manual testing. How do I automate a test like this ?)

ALEXA Amazon Echo, SKILL

Is there an API that we can use to invoke the invocation name and execute an intention.
This is what I want to do is send an alert to Alexa and she speaks without having said the invocation name
Thank you, :)
Depends on your use case. There is a Reminders API that might meet your needs. It can provide a reminder to a customer at a later time after a session has ended, but it needs to be set with the customer's approval. So your customer would have to invoke the skill and approve setting the reminder, but then the reminder could occur at a later time.
https://developer.amazon.com/en-US/docs/alexa/smapi/alexa-reminders-api-reference.html
For example, I've played a game that only lets you take a specific action every 90 minutes. In the game, it asks if you want to set a reminder for 90 minutes later. Ninety minutes later, whether you're playing the game or not, Alexa provides the reminder.
No, there is no API like that. If you want your Alexa to speak, you have to start the conversation with voice. It's by design.
However you can try build a small device/mobile app with endpoint that could play the recorded voice ("Alexa, open my skill") and play it near Alexa.
Also you can try Skill Invocation API - you will receive Alexa's response in JSON - in my opinion it's good enough for tests (since you are not testing how Alexa pronounce words in response).
Or Skill Simulation API.

Game Center game development time limit?

Apparently I have to create my App on iTunes Connect in order to use Game Center code in my project. But wait, I remember that if you wait around 7 months of something, iTunes Connect removes your app and the same name can't be used again.
Is there a way to... remove that time limit?
It's 4 months and no, there is no way to extend it, although I have heard unconfirmed reports of people talking to Apple and getting it extended, but I would not count on that.
I asked this very question on the Apple forums and was told by several people to just create a dummy App, do all your testing and then when you know you can complete it in less than 4 months, create a new final app. The downside is you have to reenter all your leader board and achievement information.

iTunes Connect yellow button

This is probably a silly question, but I can't find the answer anywhere. When there's the yellow button next to an app I've submitted to iTunes Connect, it means they're still reviewing it, right?
How long does that review process take? I think it's been yellow for about two weeks now, does that fit the timeline?
Thanks!
Yellow means that it's either:
In review
Waiting for review
Waiting for binary upload
waiting for export compliance
Basically anything that needs you to wait and be patient.
the review process takes time, anywhere from 1 week to 1 month depending on your luck and how complex the app is.
After submitting your app, Yellow means one of the following:
-In review
-Waiting for review
An average timeline for an app to be reviews fits from a week, to two weeks. It should definitely not take any longer than 3 weeks at most. Make sure that you selected the "Submit for Review" button in iTunes connect as uploading your build (project) to iTunes connect will not automatically submit it for review. Just be patient, and as long as you followed my directions above you should get a response soon.

Avoid Leaderboard Hacking on Game Center

Has anyone found a way to avoid leaderbaord hacking on Game Center or at least make it more complicated?
You can see a video of HackCenter, a Cydia app that lets you submit any score you want here: Hack Center
Even though that application is not supposed to be available on the Cydia Store we've all seen scores that are obviously fake on several games on the AppStore. Unlike the score submitted on that video, the fake scores are usually ridiculously high and they discourage other players, since they can never reach the top of the leaderboard.
I haven't been able to find out how the hack is accomplished (I presume they intersect the http call and just replace the score parameter with whatever they want?).
Any insight is appreciated.
The problem stems from allowing users to generate their own score data device-side. This would be a lot harder if all the score related calculations were done server-side and then posted to the score-board (I don't know how your app works, so I can't recommend a specific technique).
I think the BEST thing you can do is record data about HOW they got the really high score for review later by you. That may be impossible depending on your game's structure. It also might be forge-able depending on your games structure. For example, some game scores are impossible to get in-game just due to the physics on how the game works. This in my opinion is your best defense against it. Sadly, that requires monitoring it all the time....
Also, even if you can verify fake scores, someone could continually forge fake scores all day long and you'll never be able to keep up with it. Someones score submission bot will win in the end. It's not human, you are. It can post fake scores all day, you can't watch for fake ones all day, you can't verify 1000s of fake submissions. Trying to verify anything that is generated user-side (such as device ID, app being installed, etc...) is pointless. It can be forged. IP addresses are meaningless too. Your app is a on a mobile platform that can get a brand new IP all they want from the cell company. Tracking single legit real users is very hard if someone wants to hide from you because of this.
Maybe you can have some kind of app purchase verification with the help of Apple too. That would make it easier for you to ban offenders. They would have to pay you to forge your leaderboard, lol.
That's just my 2 cents, I hope it helps.
Because they're doing a http intercept, there's unfortunately nothing you can do. I've even found setting the max score for the leaderboard in itunes connect has no effect.
A game I worked on never serilaised the score to disk - so it couldn't have been changed there - and set max score to 30m. Yet the leaderboard was full with IntMax scores within hours of launching.
Hopefully Apple will have some fixes coming in WDC13 because as it stands, the worldwide leaderboards are useless.
You could try checking if the user has that thing installed I guess and then disable them from entering a high score if it they have the app.
I personally would just check for Cydia:
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:#"cydia://"]]
I am not sure what the url for Hack Center is exactly but, maybe you could try guessing it a couple times. I would guess 'cydia://hack_center' or something like that. And then once you find the url replace it 'cydia://' with it.
Have two hi score tables:those with cydia, those without :P
You can also set up your own server and use proper authentication and encrypted channels to upload score and then just compare whats in your server vs whats in GameCenter... You still need to clean up the leaderboard, but at least you will know what to remediate and which users to put on blacklist.