Giter Site home page Giter Site logo

phlexa's Introduction

phoice

Build voice applications with phoice and PHP

phlexa's People

Contributors

abraxa1982 avatar danielruf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

abraxa1982

phlexa's Issues

Write detailed documentation

Based on the feedback from issue #2 from @michabbb we want to write a detailed (and PHP framework independent) documentation for the phlexa project. In the next days I will add a table of contents here.

Feel free to add you thoughts about how such a documentation should look like. What will you expect?

Thanks for your feedback!

Better support for Alexa requests

The requests that are sent by the Alexa Voice Service have been grown a lot in the last months. There is plenty of new stuff sent by the AVS that is not represented in the Phlexa\Request\AlexaRequest class hierarchy. So we need to identify these blocks and add them to the class hierarchy by adding new classes and properties to these new classes.

The first step is to pick all missing information from normal requests.

Launch request

{
	"version": "1.0",
	"session": {
		"new": true,
		"sessionId": "amzn1.echo-api.session.sessionId",
		"application": {
			"applicationId": "amzn1.ask.skill.applicationId"
		},
		"user": {
			"userId": "amzn1.ask.account.userId"
		}
	},
	"context": {
		"Display": {},
		"System": {
			"application": {
				"applicationId": "amzn1.ask.skill.applicationId"
			},
			"user": {
				"userId": "amzn1.ask.account.userId"
			},
			"device": {
				"deviceId": "amzn1.ask.device.deviceId",
				"supportedInterfaces": {
					"Display": {
						"templateVersion": "1.0",
						"markupVersion": "1.0"
					},
					"Alexa.Presentation.APL": {
						"runtime": {
							"maxVersion": "1.1"
						}
					}
				}
			},
			"apiEndpoint": "https://api.eu.amazonalexa.com",
			"apiAccessToken": "apiAccessToken"
		},
		"Viewport": {
			"experiences": [
				{
					"arcMinuteWidth": 246,
					"arcMinuteHeight": 144,
					"canRotate": false,
					"canResize": false
				}
			],
			"shape": "RECTANGLE",
			"pixelWidth": 1024,
			"pixelHeight": 600,
			"dpi": 160,
			"currentPixelWidth": 1024,
			"currentPixelHeight": 600,
			"touch": [
				"SINGLE"
			],
			"video": {
				"codecs": [
					"H_264_42",
					"H_264_41"
				]
			}
		},
		"Viewports": [
			{
				"type": "APL",
				"id": "main",
				"shape": "RECTANGLE",
				"dpi": 160,
				"presentationType": "STANDARD",
				"canRotate": false,
				"configuration": {
					"current": {
						"video": {
							"codecs": [
								"H_264_42",
								"H_264_41"
							]
						},
						"size": {
							"type": "DISCRETE",
							"pixelWidth": 1024,
							"pixelHeight": 600
						}
					}
				}
			}
		]
	},
	"request": {
		"type": "LaunchRequest",
		"requestId": "amzn1.echo-api.request.requestId",
		"timestamp": "2019-10-26T17:43:17Z",
		"locale": "de-DE",
		"shouldLinkResultBeReturned": false
	}
}

Intent Request

{
	"version": "1.0",
	"session": {
		"new": false,
		"sessionId": "amzn1.echo-api.session.sessionId",
		"application": {
			"applicationId": "amzn1.ask.skill.applicationId"
		},
		"attributes": {
			"names": [
				"Ralf",
				"Horst"
			],
			"count": 2
		},
		"user": {
			"userId": "amzn1.ask.account.userId"
		}
	},
	"context": {
		"Display": {},
		"Alexa.Presentation.APL": {
			"token": "handle-known",
			"version": "APL_WEB_RENDERER_GANDALF",
			"componentsVisibleOnScreen": [
				{
					"uid": ":1024",
					"position": "1024x600+0+0:0",
					"type": "mixed",
					"tags": {
						"viewport": {}
					},
					"entities": []
				}
			]
		},
		"System": {
			"application": {
				"applicationId": "amzn1.ask.skill.applicationId"
			},
			"user": {
				"userId": "amzn1.ask.account.userId"
			},
			"device": {
				"deviceId": "amzn1.ask.device.deviceId",
				"supportedInterfaces": {
					"Display": {
						"templateVersion": "1.0",
						"markupVersion": "1.0"
					},
					"Alexa.Presentation.APL": {
						"runtime": {
							"maxVersion": "1.1"
						}
					}
				}
			},
			"apiEndpoint": "https://api.eu.amazonalexa.com",
			"apiAccessToken": "apiAccessToken"
		},
		"Viewport": {
			"experiences": [
				{
					"arcMinuteWidth": 246,
					"arcMinuteHeight": 144,
					"canRotate": false,
					"canResize": false
				}
			],
			"shape": "RECTANGLE",
			"pixelWidth": 1024,
			"pixelHeight": 600,
			"dpi": 160,
			"currentPixelWidth": 1024,
			"currentPixelHeight": 600,
			"touch": [
				"SINGLE"
			],
			"video": {
				"codecs": [
					"H_264_42",
					"H_264_41"
				]
			}
		},
		"Viewports": [
			{
				"type": "APL",
				"id": "main",
				"shape": "RECTANGLE",
				"dpi": 160,
				"presentationType": "STANDARD",
				"canRotate": false,
				"configuration": {
					"current": {
						"video": {
							"codecs": [
								"H_264_42",
								"H_264_41"
							]
						},
						"size": {
							"type": "DISCRETE",
							"pixelWidth": 1024,
							"pixelHeight": 600
						}
					}
				}
			}
		]
	},
	"request": {
		"type": "IntentRequest",
		"requestId": "amzn1.echo-api.request.requestId",
		"timestamp": "2019-10-26T17:49:26Z",
		"locale": "de-DE",
		"intent": {
			"name": "GreetIntent",
			"confirmationStatus": "NONE",
			"slots": {
				"first_name": {
					"name": "first_name",
					"value": "horst",
					"resolutions": {
						"resolutionsPerAuthority": [
							{
								"authority": "amzn1.er-authority.echo-sdk.amzn1.ask.skill.authority.AMAZON.DE_FIRST_NAME",
								"status": {
									"code": "ER_SUCCESS_MATCH"
								},
								"values": [
									{
										"value": {
											"name": "Horst",
											"id": "d8716f14eb40a0764407ff1ca2eea315"
										}
									}
								]
							}
						]
					},
					"confirmationStatus": "NONE",
					"source": "USER"
				}
			}
		}
	}
}

mal so als anregung

servus,

ich würde das framework hier ja gerne benutzen, aber null docu und das skeleton besitzt auch kein howto und zudem ist es nutzlos, wenn man laravel benutzt. von daher werde ich wohl etwas altes benutzen, was aber wenigstens ansatzweise erklärt ist. ich dachte, vielleicht interessiert es dich. ist halt schade wenn jemand etwas public macht aber keiner kanns nutzen. lg

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.