Android-laitteet ovat varmasti valloittamassa maailmaa. Tuhannet älypuhelimet, tabletit, älytelevisiot ja joukko muita laitteita saa virtansa Googlen avoimen lähdekoodin alustasta. Tämän lisäksi Googlen kannettava tietojenkäsittely kannustaa maailmaa aivan uusiin korkeuksiin. Google Glass on laite, joka on hyvin lähellä tapaa muuttaa tapaa, jolla olemme tekemisissä tekniikan kanssa. Olemme käyneet pitkään päänsä alaspäin tuijottaen pieniä puhelimen näyttöjä. Google Glass auttaa meitä nostamaan päämme ja kävelemään ylpeänä samalla kun olemme tekemisissä puettavan tekniikkamme kanssa.
Ensiksi, Android-kehitys rajoitettiin vain kehittäjiin, joilla oli Java-tietoa. Suuri kehittäjien yhteisö rakensi upeita verkkosovelluksia muilla alustoilla, ja sillä oli suuria vaikeuksia ottaa käyttöön Android-kehitys. On olemassa muutamia lähestymistapoja, jotka kehittyivät myöhemmin ja tarjosivat jonkinlaisen alustojen välisen kehityksen, voimistavan taitava web-kehittäjä aloittaa Android-sovellusten rakentamisen ilman Java- ja Android SDK -tietoja. Mutta eikö olisikaan hienoa kehittää Google Glassia ilman uuden ohjelmointikielen oppimista ja edes käyttämällä vain verkkokehittäjille yhteistä tietoa? Kyllä se on mahdollista!
Google tarjosi pilvipohjaisia RESTful-palveluja, joiden avulla verkkokehittäjät voivat rakentaa lasitavaraa vain vuorovaikutuksessa Googlen isännöimien ja hallinnoimien verkkopalvelujen kanssa. Nämä palvelut ovat nimetty Mirror API, ja ne ovat riippumattomia kehitysympäristöistä. Glassin Mirror-sovellusliittymän käytön aloittamiseksi sinun ei tarvitse edes omistaa Google Glass -laitetta, vaikka jotkin lisäominaisuudet edellyttävät, että sinulla on sellainen.
Sinun on tiedettävä vain kaksi asiaa:
Tässä Google Glass -kehitysoppaassa esitellään tekniikat, joita voit käyttää Glass-sovellusten rakentamiseen.
Jos et ole vielä käyttänyt Google Glassia, katso nämä kaksi videota, koska niiden pitäisi antaa sinulle tarpeeksi tietoa käyttöliittymän perusteiden ymmärtämiseksi.
Asennuksessa ja navigoinnissa on vielä enemmän hyödyllisiä videoita tässä ja monia muita tietoja käyttöliittymästä tässä .
Mirror API: n ja natiivi Google Glass -kehitys . Tämän opetusohjelman tarkoituksena ei ole keskustella näistä eroista, vaan tarjota web-kehittäjille tietoa siitä, miten Google Glass toimii ja miten he voivat päästä alukseen mahdollisimman pian.
Ensimmäinen ja tärkein asia on, että rakennat tavallista verkkosovellusta. Sovelluksesi toimii verkkopalvelimella, eikä se koskaan ole vuorovaikutuksessa suoraan Google Glass -laitteen kanssa. Sen sijaan sovelluksesi on vuorovaikutuksessa Mirror API -palvelujen kanssa. Mirror API-pohjaiset sovellukset eivät vaadi asennusta itse Glassiin, ja kaikki palvelut ovat jo osa Glass OS: ää.
Google Glass -laite suorittaa omat synkronointipalvelunsa työntääkseen tai vetääkseen sisältöä takaisin sovellukseesi Mirror-sovellusliittymän kautta.
Et voi vaikuttaa siihen, kuinka usein Google Glass etsii päivityksiä Mirror-sovellusliittymästä, ja keskimmäisen miehen hankkiminen maksaa. Tämän arkkitehtuurin suora seuraus on, että et voi olla reaaliajassa vuorovaikutuksessa Glass-käyttäjien kanssa. Sinun pitäisi aina odottaa viivettä toimintopyyntösi ja Glass-laitteella suoritettavan todellisen tapahtuman välillä.
Jotta voit käyttää Mirror-sovellusliittymää verkkokehitykseen, sinun on määritettävä sovelluksen identiteetti Google Developers Consolessa. Avaa Google APIs -konsoli ja kirjaudu sisään Google-tililläsi.
Luo uusi projekti; nimetään se 'Mirror API Demo'
Seuraava asia, joka sinun on tehtävä, on ottaa Mirror-sovellusliittymä käyttöön Glass-verkkosovelluksellesi. Voit tehdä sen napsauttamalla Ota käyttöön sovellusliittymä -painiketta projektin yleiskatsaussivulla, etsimällä luettelosta Peilien sovellusliittymä ja kytkemällä se PÄÄLLE.
Luo seuraavaksi asiakastunnus Glass-verkkosovelluksille. Voit tehdä tämän napsauttamalla 'Luo uusi asiakastunnus' -painiketta Tunnistetiedot-näytössä.
Huomautus : Sinua saatetaan pyytää täyttämään Suostumus-näyttö. Tämän lomakkeen tiedot esitetään käyttäjälle myönnettäessä pääsy hakemukseesi.
Testaamme Mirror-sovellusliittymän Google Glass Playgroundin avulla. Jotta Playground voidaan ottaa käyttöön, sinun on valtuutettava https://mirror-api-playground.appspot.com kelvollisena lähteenä HTTP-pyynnöille. Emme käytä OAuth-uudelleenohjausta tässä esittelyssä, joten voit jättää mitä tahansa Uudelleenohjauksen URI-kenttään.
Napsauta Luo asiakastunnus ja olet valmis tekemään ensimmäisen Mirror-sovellusliittymäpyynnön.
Tärkeä : Älä erehdy Mirror API -kehittäjätilisi kanssa Google Glass -omistajatiliisi. Voit tehdä tämän harjoituksen vain yhdellä tilillä, joka on kehittäjä ja Glass-omistaja, mutta on tärkeää olla tietoinen näiden kahden tilin erottamisesta.
Jokainen HTTP-pyyntö, joka lähetetään Glass-verkkosovelluksestasi Mirror API: lle, on valtuutettava. Mirror-sovellusliittymä käyttää tavanomaista 'verkkotunnuksen todennusta', mikä tarkoittaa, että sinun on annettava tunnus jokaisen pyynnön yhteydessä. Tunnuksen myöntää Google-sovellusliittymä käyttäen standardia OAuth 2.0 -protokollaa.
Google Glass Playgroundin avulla voit kokeilla, miten sisältö näytetään Glass-lasilla. Voit käyttää sitä sisällön siirtämiseen lasillesi, mutta vaikka sinulla ei olisikaan laitetta, voit nähdä, miltä se näyttää Glass-näytöltä.
Mirror API Playground löytyy osoitteesta tämän URL-osoitteen .
Olemme jo sallineet Mirror API Playground -päätepisteen kelvollisena HTTP-pyynnön lähteenä. Jotta voit käyttää Playgroundia, sinun on 'tunnistettava Mirror API Playground sovellukseksi' antamalla asiakastunnuksesi. Löydät sovelluksesi asiakastunnuksen Google Developers Consolesta.
Kun napsautat 'Valtuuta', sinulle näytetään OAuth 2.0 -suositusnäyttö, samanlainen kuin alla olevassa kuvassa. Huomaa, että sinun on kirjauduttava sisään Glass Owner -tililläsi, koska nämä ovat kirjautumistiedot, joita sovellus käyttää vuorovaikutuksessa Glassin kanssa.
Kun olet napsauttanut Hyväksy, Mirror API Playground tunnistetaan omaksi sovellukseksi. se saa pääsyn käyttäjän Glass-aikajanalle ja voit olla vuorovaikutuksessa Google Glass -laitteen kanssa leikkikentältä.
Mirror API Playground on täynnä ennalta määritettyjä malleja, joita voit käyttää API: n kokeilemiseen. Selaa luetteloa ja löydä esimerkki, joka pidät eniten. Tätä esittelyä varten valitsin “Hello Explorers” -kortin.
Valittu kohde näytetään leikkikentällä yhdessä sen asettelun rakentamiseen käytetyn HTTP Request Body -sisällön kanssa.
{ 'text': 'Hello Explorers,
Welcome to Glass!
+Project Glass
', 'creator': { 'displayName': 'Project Glass', 'imageUrls': [ 'https://lh3.googleusercontent.com/-quy9Ox8dQJI/T3xUHhub6PI/AAAAAAAAHAQ/YvjqA3Pw1sM/glass_photos.jpg?sz=360' ] }, 'menuItems': [ { 'action': 'REPLY' } ], 'notification': { 'level': 'DEFAULT' } }
Voit vapaasti muokata pyyntöä ja kun olet tyytyväinen suunnitteluun, napsauta Lisää tuote -painiketta. Kun pyyntö on käsitelty, aikajanasi päivitetään. Jos sinulla on Glass-laite, kohde lisätään myös aikajanalle.
Onnittelut! Suoritit ensimmäisen Mirror API -sovelluspyyntösi ja lähetit viestin Google Glassille kirjoittamatta edes koodia.
Tehdään asioista hieman mielenkiintoisempia. Haluamme poistaa Mirror API Playgroundin ja laittaa oman sovelluksemme sen tilalle.
Ensinnäkin meidän on varmistettava, että Google-sovellusliittymä hyväksyy pyynnöt sovelluksestamme. Palaa Google Developers Consoleen ja lisää sovelluksesi URL-osoite valtuutettujen JavaScript Origins -luetteloon. Käytän http://localhost:3000
mutta voit muokata tätä omaan asetukseesi.
Käytämme OAuth 2.0 -pyynnön suorittamiseen ja valtuutustunnuksen hankkimiseen Google API: lta Google API: n JavaScript-asiakaskirjasto .
Luo yksinkertainen HTML-sivu, jolla on seuraava sisältö, muista korvata CLIENT ID sovellustunnuksellasi:
{{ title }} function auth() { var config = { 'client_id': ', 'scope': [ 'https://www.googleapis.com/auth/userinfo.profile', 'https://www.googleapis.com/auth/glass.timeline', 'https://www.googleapis.com/auth/glass.location' ] }; gapi.auth.authorize(config, function () { console.log('login complete'); console.log(gapi.auth.getToken()); }); } Authorize
Kun käynnistät Google Glass -sovelluksen (varmista, että se toimii URL-osoitteella, jonka määritit valtuutetuksi JavaScript-alkuperäksi Google Developers Consolessa) ja napsautat Valtuuta, aloitat OAuth 2.0 -kulun. Kirjaudu sisään Google-tililläsi ja tunnuksesi näkyy selainkonsolissa.
Nyt, aseistettuna tunnuksellasi, olet valmis aloittamaan lähettämisen Mirror API: een! Tunnuksesi vanhenee 60 minuutissa, mutta sen pitäisi olla enemmän kuin tarpeeksi aikaa demon päättämiseen. Voit aina saada toisen tunnuksen napsauttamalla uudelleen ”Valtuuta”.
RESTful-palvelut ja HTTP-pyynnöt ovat yleisiä termejä kaikkien verkkokehittäjien keskuudessa riippumatta siitä, mitä kehitysalustaa tai ohjelmointikieliä he käyttävät. Jos haluat kokeilla tätä esittelyä, sinun on suoritettava tavalliset HTTP-pyynnöt kohti Mirror API -päätepisteitä. Päätän käyttää Postinkantaja tätä varten. Ota rohkeasti vastaan pyynnön tiedot ja toteuta esittely suosikkikielelläsi. Käytä Postmania tai muuta HTTP-asiakastyökalua.
Voit aina noutaa luettelon Glassiin siirtämistään kohteista suorittamalla HTTP GET -asetuksen https://www.googleapis.com/mirror/v1/timeline
Jokainen Mirror-sovellusliittymää koskeva pyyntö on valtuutettava. Valtuutusvaltuus lähetetään arvona Valtuutuksen HTTP-otsikossa, jonka etuliite on 'Kantaja' -sana.
Postmanissa se näyttäisi tältä:
Jos täytät pyynnön, vastauksen tulee olla samanlainen kuin tämä:
{ 'kind': 'mirror#timeline', 'nextPageToken': 'CsEBCqQBwnSXw3uyIAD__wAA_wG4k56MjNGKjJqN18bHzszIy8rMz8nIy9bRlouaktedxp2dyJrHmtLInsue0suZzZvSncvOxtLIyJnGnJyex57Px8zW_wD-__730HDTmv_7_v5HbGFzcy51c2VyKDk4MTM3NDUzMDY3NCkuaXRlbShiOWJiN2U4ZS03YTRhLTRmMmQtYjQxOS03N2Y5Y2NhOGEwODMpAAEQASG5sX4SXdVLF1AAWgsJsgPYYufX654QASAA8ISVfAE=', 'items': [ { 'kind': 'mirror#timelineItem', 'id': 'b9bb7e8e-7a4a-4f2d-b419-77f9cca8a083', 'selfLink': 'https://www.googleapis.com/mirror/v1/timeline/b9bb7e8e-7a4a-4f2d-b419-77f9cca8a083', 'created': '2014-11-04T19:11:07.554Z', 'updated': '2014-11-04T19:11:07.554Z', 'etag': '1415128267554', 'creator': { 'kind': 'mirror#contact', 'source': 'api:182413127917', 'displayName': 'Project Glass', 'imageUrls': [ 'https://lh3.googleusercontent.com/-quy9Ox8dQJI/T3xUHhub6PI/AAAAAAAAHAQ/YvjqA3Pw1sM/glass_photos.jpg?sz=360' ] }, 'text': 'Hello Explorers,
Welcome to Glass!
+Project Glass
', 'menuItems': [ { 'action': 'REPLY' } ], 'notification': { 'level': 'DEFAULT' } } ] }
Jos katsot vastauksen sisältöä, huomaat, että se sisältää leikkikentältä lähettämäsi kohteen.
Uuden kohteen luominen edellyttää, että POST suoritetaan kohtaan https://www.googleapis.com/mirror/v1/timeline
. Sinun on myös määritettävä, että Content-Type
on application/json
ja anna Authorization
otsikko, aivan kuten edellisessä esimerkissä.
Oletetaan, että olemme suuria urheilun faneja, ja suosikkijoukkueemme Aliens pelaa Petoeläimiä. Haluamme käyttää Mirror API -sovellusta tulosten lähettämiseen kaikille faneille.
Pyynnön rungon tulisi näyttää tältä.
{ 'html': '
Aliens
0
Predators
0
Final Score
', 'notification': { 'level': 'DEFAULT' } }
Ja Postimiehen näytön tulisi olla samanlainen kuin tämä.
Kun suoritat pyynnön, Mirror-sovellusliittymän tulisi antaa vastaava vastaus.
{ kind: 'mirror#timelineItem', id: 'e15883ed-6ca4-4324-83bb-d79958258603', selfLink: https://www.googleapis.com/mirror/v1/timeline/e15883ed-6ca4-4324-83bb-d79958258603, created: '2014-11-04T19:29:54.152Z', updated: '2014-11-04T19:29:54.152Z', etag: '1415129394152', html: ' Aliens
0
Predators
0
Final Score
', notification: { level: 'DEFAULT' } }
Vaikka sinulla ei olisi Google Glassia, voit palata Mirror-sovellusliittymän leikkikentälle ja napsauttaa 'Lataa aikajanan kohteet uudelleen' -painiketta. Sinun pitäisi nähdä kaksi kohdetta, aivan kuten ne näkyisivät lasinäytöllä. Molemmat kohteet luetellaan, jos suoritat ensimmäisen esimerkin ja HANKI kohteet.
Jos tarkastelet edellisen esimerkin vastauksen sisältöä, löydät samanlaisen rivin
id: 'e15883ed-6ca4-4324-83bb-d79958258603'
Mirror-sovellusliittymä määrittää globaalisti yksilöllisen tunnuksen jokaiselle kohteelle, kun se lisätään. Tämä tunnus lisätään vastaukseen, kun POST on suoritettu, ja se sisältyy kohteen tietoihin, kun suoritat GET-luettelon aikajanan kohteiden luetteloimiseksi.
Oletetaan, että Predators otti johtoaseman ja teki maalin. Pistemäärän päivittämiseksi sinun on suoritettava PUT arvoon https://www.googleapis.com/mirror/v1/timeline
jota seuraa henkilötodistus. Samanlainen kuin
https://www.googleapis.com/mirror/v1/timeline/e15883ed-6ca4-4324-83bb-d79958258603
Muokkaa kohteen sisältöä vastaamaan muutostasi.
{ 'html': '
Aliens
0
Predators
1
Final Score
', 'notification': { 'level': 'DEFAULT' } }
Postimiehen kokoonpanon pitäisi näyttää samanlaiselta kuin tämä.
Kun olet suorittanut pyynnön ja tarkistanut aikajanasi sisällön, huomaat, että Petoeläimet johtavat 1: 0.
Toistaiseksi työnnimme vain sisältöä Glassille ilman käyttäjän vuorovaikutusta tai palautetta. Valitettavasti et voi simuloida käyttäjän vuorovaikutusta, ja sinun on käytettävä aitoa Glass-laitetta kokeilemaan tätä esimerkkiä.
Joten peli jatkuu ja Aliens tekee maalin 1: 1. Haluamme ottaa käyttöön jonkinlaisen 'tykkään' -toiminnon, jossa käyttäjät voivat suorittaa yksinkertaisia toimintoja tarkastellessaan aikajanan kohdetta.
Ensin meidän on lisättävä valikko kortillemme, joka näyttää pisteet. Päivitä aikajanan kohde seuraavan sisällön mukaisesti edellisen esimerkin ohjeiden mukaan:
{ 'html': '
Aliens
1
Predators
1
Final Score
', 'notification': { 'level': 'DEFAULT' }, 'menuItems':[ { 'action':'CUSTOM', 'id':'i_like', 'values':[ { 'displayName':'I Like!' } ] } ] }
Kun täytät tämän pyynnön, käyttäjä näkee, että pisteet on nyt päivitetty arvoon 1: 1. Mutta kun käyttäjä napauttaa lasia, esiin tulee valikko.
Jos napautat nyt “Tykkään”, mitään ei tapahdu!
Olen jo maininnut, että sovelluksesi ja Glass-laitteen välillä on aina 'keskimmäinen mies'. Kun valitset Tykkään, Glass-laite lähettää tiedot Mirror-sovellusliittymään, mutta et ole määrittänyt, mihin Mirror-sovellusliittymän tulisi lähettää nämä tiedot.
Täällä Tilaukset tulee sisään. Sinun on tilattava saada ilmoituksia Mirror-sovellusliittymältä, kun käyttäjä suorittaa toiminnon.
Tilauksen luominen edellyttää, että suoritat POST-koodin https://www.googleapis.com/mirror/v1/subscriptions
.
Pyynnön rungon tulisi olla tällainen:
{ 'collection':'timeline', 'userToken':'toptal_test', 'operation': ['INSERT','UPDATE','DELETE'], 'callbackUrl': 'https://mirrornotifications.appspot.com/forward?url=' }
callbackUrl
sisältää uudelleenohjauksen URL-osoitteen.
Huomautus : Mirror-sovellusliittymä vaatii SSL-salauksen URL-osoitteelle, johon tapahtumadata välitetään. Testausta varten Google on kuitenkin toimittanut välityspalvelimen osoitteeseen https://mirrornotifications.appspot.com/forward
.
Mirror-sovellusliittymä suorittaa POST-tilauksen määrittämäsi URL-osoitteen. Sinun on käytettävä haluamaasi kehitysympäristöä luodaksesi käsittelijä kyseiselle URL-osoitteelle. Olen toimittanut yksinkertaisen JavaScript (NodeJS / ExpressJS) -näytteen, joka tuottaa vain pyynnön sisällön.
router.get('/notify', function(req, res) { console.log(req); res.send('OK'); });
Google Glass Mirror -sovellusliittymä on monin tavoin ainutlaatuinen. Suunniteltu antamaan verkkokehittäjille pääsy Glass-kehitykseen ilman ennakkoehtoja, se sisältyy Glass OS: n ytimeen, eikä se ole riippuvainen kolmansien osapuolten kehittämistyökaluista. Google hallinnoi ja ylläpitää täysin Mirror-sovellusliittymää, ja se on osa Google API -alustaa, joka vapauttaa sinut vakaudesta ja skaalautuvuudesta.
Jos olet verkkokehittäjä, joka ei ole koskaan käyttänyt Google Glassia, vältit luultavasti oppimasta Mirror-sovellusliittymää, koska ajattelet, että sinulla on oltava Glass-laite, tai ajattelit, että sinun on käytettävä paljon aikaa oppimiseen Google Glass -kehityksestä. Toivon, että tämä Mirror-sovellusliittymän opetusohjelma auttoi sinua rikkomaan tämän esteen ja antoi sinulle viivytyksen viettää muutaman minuutin tämän tyyppiseen kehitykseen.
Puettava tekniikka on täällä, Google Glass on rajallaan, ja jokaisella kehittäjällä pitäisi olla mahdollisuus olla osa sitä. Mirror API antaa sinulle juuri sen.
Tässä artikkelissa on työkaluja ja ohjeita Mirror API -sovelluksen todentamiseen, tietojen lukemiseen Google Glassista, tietojen lähettämiseen Google Glassiin ja palautteen vastaanottamiseen käyttäjältä. Lisätietoja Mirror API: sta ja sen ominaisuuksista on osoitteessa Peilaa API-oppaita .