alexa_web_service 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4e77c95bba2bc9c56617f050c1579f572e76450c
4
- data.tar.gz: 04ed856e3976cc87dcc15957bc27a4101c032fe1
3
+ metadata.gz: 09989d6bef15da61c9a47120fa71db45b407bdd2
4
+ data.tar.gz: 863bb2bd369bd3f6983b4f4dd3d0721d4d26cf25
5
5
  SHA512:
6
- metadata.gz: a6d032a7f83d9a97043165a8601cac3781280d22b37822a816597f19ef9b5136dfebfc7a7bebc1aad7a6447c0b50d488eed899bee629058e78f7e064f0420d4f
7
- data.tar.gz: 460410d8ae38d6b3eddfdf90f9c58c64f6045f1344f8cbad40a93b7914a180349808b21484f9a414e437f9ad60dbcad8f11459e429c11dbb99adc58d3224434e
6
+ metadata.gz: 736dac5ce2ad13a50214971324343796ec5d74792840284f92549a74a119c3f155e38dce21a4815017942991dec9e5b55421e68eeb32e7fe177e15a6542e865a
7
+ data.tar.gz: 51452ddc6a39da86a913466a46361e4fe49f88199483e9e4b0d7a8dd2fe668314443065f610795d51bd6564d55b815828cb75c97c1cf04d1e8b3a13a425f50ac
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- alexa_web_service (1.0.0)
4
+ alexa_web_service (1.0.1)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -113,25 +113,7 @@ response.spoken_response = "This is what Alexa will say to you"
113
113
  response.reprompt_text = "This is what she'll say if she doesn't hear your response the first time."
114
114
  ````
115
115
 
116
- You can then send the response back to Alexa with the following command:
117
116
 
118
-
119
- ````Ruby
120
- response.without_card.to_json
121
- ````
122
-
123
- So, putting the AlexaRequest and AlexaResponse together:
124
-
125
- ````Ruby
126
- response = AlexaWebService::Response.new
127
-
128
- if @echo_request.launch_request
129
- response.spoken_response = "Hello user"
130
- response.end_session = true
131
- end
132
-
133
- response.without_card.to_json
134
- ````
135
117
 
136
118
  You can use [SSML](https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/speech-synthesis-markup-language-ssml-reference):
137
119
 
@@ -0,0 +1,3 @@
1
+ require './app'
2
+
3
+ run Sinatra::MyApp
@@ -0,0 +1,45 @@
1
+ require 'sinatra/base'
2
+ require 'alexa_web_service'
3
+ require './eight_ball'
4
+
5
+ module Sinatra
6
+ class MyApp < Sinatra::Base
7
+
8
+ set :protection, :except => [:json_csrf]
9
+ register Sinatra::EightBall
10
+
11
+ # You might need the following if you are implementing account linking.
12
+ # helpers Sinatra::Cookies
13
+ # enable :inline_templates
14
+ # enable :sessions
15
+
16
+ before do
17
+ if request.request_method == "POST"
18
+ content_type :json, 'charset' => 'utf-8'
19
+
20
+ @data = request.body.read
21
+ begin
22
+ params.merge!(JSON.parse(@data))
23
+ rescue JSON::ParserError
24
+ halt 400, "Bad Request"
25
+ end
26
+
27
+ params.merge!(JSON.parse(@data))
28
+
29
+ # The request object.
30
+ @echo_request = AlexaWebService::Request.new(JSON.parse(@data))
31
+
32
+ # Boolean: does the Alexa Device handling the response have a screen? (Needed for AlexaWebService::DisplayDirective support)
33
+ $display_support = JSON.parse(@data)["context"]["System"]["device"]["supportedInterfaces"]["Display"].any? rescue false
34
+
35
+ # This can be used in your skill as additional verification that the request is coming from the right place
36
+ @application_id = @echo_request.application_id
37
+
38
+ # If the request body has been read, you need to rewind it.
39
+ request.body.rewind
40
+ AlexaWebService::Verify.new(request.env, request.body.read)
41
+ end
42
+ end
43
+ run!
44
+ end
45
+ end
@@ -0,0 +1,62 @@
1
+
2
+
3
+ ANSWER = ["absolutely!", "I doubt it", "If you want it badly enough", "yes, the stars are aligned for you", "the future is uncertain", "no chance", "you control your own destiny"]
4
+
5
+ module Sinatra
6
+ module EightBall
7
+ def self.registered(app)
8
+ app.post '/magic' do
9
+
10
+ content_type :json
11
+
12
+ # Uncomment this and include your skill id before submitting application for certification:
13
+ # halt 400, "Invalid Application ID" unless @application_id == "your-skill-id"
14
+
15
+ response = AlexaWebService::Response.new
16
+
17
+ if @echo_request.launch_request?
18
+ response.end_session = false
19
+ response.spoken_response = "I'm ready to tell your future. Ask me any yes no question."
20
+
21
+ elsif @echo_request.intent_name == "UserQuestion"
22
+ response.spoken_response = "#{ANSWER.sample}"
23
+
24
+ # Create a progressive response...
25
+ progressive_response = AlexaWebService::ProgressiveResponse.new(@echo_request, "Looking into the future")
26
+
27
+ # Create a display directive for the Show or Spot
28
+ display_template = AlexaWebService::DisplayDirective.new(type: "BodyTemplate2", token: "token", title: "Magic Eight Ball")
29
+ display_template.add_image("eight_ball_image", "https://s3-us-west-2.amazonaws.com/alexa-magic-eight-ball-demo/eight_ball.jpg")
30
+ display_template.add_text(primary_text: response.spoken_response)
31
+
32
+ # Create a card. Here we create a card with an image.
33
+ card = AlexaWebService::Card.new
34
+ card.title = "Magic Eight Ball"
35
+ card.content = "I never tell a lie"
36
+ card.small_image = "https://s3-us-west-2.amazonaws.com/alexa-magic-eight-ball-demo/eight_ball.jpg"
37
+
38
+ # Some Display Templates allow you to add hints
39
+ hint = AlexaWebService::HintDirective.new("Never trust fortune tellers!")
40
+
41
+ # Send the Progressive Response
42
+ progressive_response.post
43
+
44
+ # Add the directives to the response...
45
+ response.add_directive(hint.directive)
46
+ response.add_directive(display_template.directive)
47
+
48
+ # ...and add the card
49
+ response.add_card(card.with_image)
50
+
51
+ elsif @echo_request.session_ended_request?
52
+ response.end_session = true
53
+ elsif @echo_request.intent_name == "AMAZON.StopIntent" || @echo_request.intent_name == "AMAZON.CancelIntent"
54
+ response.end_session = true
55
+ end
56
+
57
+ response.post
58
+ end
59
+ end
60
+ end
61
+ register EightBall
62
+ end
@@ -0,0 +1,19 @@
1
+ INTENT SCHEMA:
2
+
3
+
4
+ {
5
+ "intents":[
6
+ {
7
+ "intent":"UserQuestion",
8
+ "slots":[]
9
+ }
10
+ ]
11
+ }
12
+
13
+
14
+ SAMPLE UTTERANCES:
15
+
16
+ UserQuestion Is trouble coming
17
+ UserQuestion Will I be rich
18
+ UserQuestion Is my boss going to promote me
19
+ UserQuestion Tell me whether my dreams will come true
@@ -19,8 +19,20 @@ module AlexaWebService
19
19
  @session_attributes.merge!(key => value)
20
20
  end
21
21
 
22
+ def delete_attribute(key)
23
+ @session_attributes.delete(key)
24
+ end
25
+
26
+ def append_attribute(key, value)
27
+ @session_attributes[key] << value if @session_attributes[key] != nil
28
+ end
29
+
22
30
  def add_directive(directive)
23
- self.directives << directive if $display_support == true
31
+ if directive[:type] == "Display.RenderTemplate"|| directive[:type] == "Hint"
32
+ self.directives << directive if $display_support == true
33
+ else
34
+ self.directives << directive
35
+ end
24
36
  end
25
37
 
26
38
  def add_card(card)
@@ -1,3 +1,3 @@
1
1
  module AlexaWebService
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alexa_web_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - sarkonovich
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-15 00:00:00.000000000 Z
11
+ date: 2018-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -94,14 +94,17 @@ executables: []
94
94
  extensions: []
95
95
  extra_rdoc_files: []
96
96
  files:
97
- - ".gitignore"
98
97
  - Gemfile
99
98
  - Gemfile.lock
100
- - README.md
101
99
  - Rakefile
100
+ - Readme.md
102
101
  - alexa_web_service.gemspec
103
102
  - bin/console
104
103
  - bin/setup
104
+ - config.ru
105
+ - example_skill/app.rb
106
+ - example_skill/eight_ball.rb
107
+ - example_skill/interaction_model.txt
105
108
  - lib/alexa_web_service.rb
106
109
  - lib/alexa_web_service/card.rb
107
110
  - lib/alexa_web_service/display_directive.rb
@@ -111,6 +114,7 @@ files:
111
114
  - lib/alexa_web_service/response.rb
112
115
  - lib/alexa_web_service/verify.rb
113
116
  - lib/alexa_web_service/version.rb
117
+ - pkg/alexa_web_service-1.0.0.gem
114
118
  homepage: https://github.com/sarkonovich/Alexa-Web-Service
115
119
  licenses:
116
120
  - MIT
data/.gitignore DELETED
@@ -1,8 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/