Bt.tn — nappi REST rajapinnoilla

apisuomi
API:Suomi
Published in
3 min readDec 10, 2016
Kuvakaappaus 2016-12-10 17-25-19

Ultrahackissa marraskuussa törmäsin Bt.tn porukkaan, joka oli tuonut muutamia nappeja näytille ja keskusteltavaksi. Muistin nähneeni tästä napista jotain juttua somessa twitter virrassa, mutta koskaan ei ollut aikaa siihen perehtyä. Ei sitä aikaa ollut Ultrahackissakaan, kun aika meni tiimejä mentoroidessa ja oman esityksen vetämiseen. Sentäs sain sovittua jatkokuviot siellä bt.tn edustajien kanssa. Nyt sitten sain yhden napin käsiini ja päätin sitä hieman tutkailla ja katsella.

“Copy-paste” testit

Ensimmäiset testit oli aika suoraviivaisia ja “copy-paste” tyylisiä. Nappien toimintalogiikan ohjaus tapahtuu web käyttöliittymän kautta eikä siellä oikeasti mitään tarvitse koodata.

Kuvakaappaus 2016-12-10 17-15-15

Palvelu toimii hyvin pitkälti niin että nappiin kytketään joku haluttu toiminta tai useita. Pistin napin painalluksen lähettämään twiitin ja siinä mukana aiemmin ottamani kuvan napista.

Kuvakaappaus 2016-12-10 16-47-45

Seuraavaksi kokeilin sitä että napin painallus lähettää sähköpostia minulle. Kokeilin myös palvelun sisäistä SMS viestin lähettämistä vaimon kännykkään. Sen jälkeen tutkailinkin jo Zapier kytkentää. Bttn mahdollistaa muun muassa IFTTT ja Zapier kytköksen Twitterin ja Twilion lisäksi. Konsepti on helppo omaksua. Kynnys käyttöönotossa on olematon.

API löytyy

Näiden kokeiden jälkeen aloin tutkimaan alustaa vähän enemmän ja törmäsin API -sivustoon. Nappien kytkös ja sen takana oleva logiikka on kovin yksinkertainen sisältäen tyypillisesi webhook kautta toimintojen laajentamisen.

bttn-api

Jokaisen napin tietoihin pääsee käsiksi REST API:n kautta. Oletuksena osaan pyynnöistä vaaditaan API key, jonka voi generoida hallintasivustolla. Perustiedot (Laitetunniste, Lyhyt tunniste) saa oletuksena ilman API keytä, mutta enemmänkin voi käyttäjä itse määrittää kerrottavan. Tässä esimerkki REST kutsu perustietoihin minun napista: https://api.bt.tn/2014-06/10117/info joka palauttaa:

{"bid":10117,"address":["0866771028675832"]}

API asetukset

Kuvakaappaus 2016-12-10 16-58-38

Vääntelin vähän hanikoita ja huomasin, että jos yllä olevan kuvan mukaisissa asetuksissa vääntää “no” -> “yes” niin API ei vaadi tunnistusta, eli tieto on avointa. Se mitä esim perustietoihin (https://api.bt.tn/2014-06/10117/info) tuli muutaman klikkauksen jälkeen näytti tältä:

Kuvakaappaus 2016-12-10 17-05-18

Vastaavasti tapahtumalaskuri tuotti dataa:

Kuvakaappaus 2016-12-10 17-09-06

Varsin kompakti palvelu ja jäin miettimään mihin tätä käyttäisi sitten :) Luulisin että tässä voisi olla eväitä esim peruskoulun “koodausopetukseen”, eli simppeli setup jonka kautta opettaa ensimmäisiä askeleita virtuaalisen ja fyysisen maailman yhdistämisessä sekä logiikan parissa. Taidan yllyttää paria luotto-opettajaa tekemään vähän ajatustyötä.

--

--