{"id":1745,"date":"2017-11-16T21:01:40","date_gmt":"2017-11-16T19:01:40","guid":{"rendered":"https:\/\/einstein.amsterdam\/?page_id=1745"},"modified":"2017-11-20T18:16:19","modified_gmt":"2017-11-20T16:16:19","slug":"sharkrf-openspot-api-script","status":"publish","type":"page","link":"https:\/\/einstein.amsterdam\/?page_id=1745","title":{"rendered":"SharkRF openSPOT API Script"},"content":{"rendered":"<p>I build this simple login script because i was tired of manual logging in every time.<br \/>\nI will continue building this script.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1818 size-full\" src=\"https:\/\/einstein.amsterdam\/wp-content\/uploads\/Screen-Shot-2017-11-20-at-17.15.30.png\" alt=\"\" width=\"262\" height=\"362\" srcset=\"https:\/\/einstein.amsterdam\/wp-content\/uploads\/Screen-Shot-2017-11-20-at-17.15.30.png 262w, https:\/\/einstein.amsterdam\/wp-content\/uploads\/Screen-Shot-2017-11-20-at-17.15.30-217x300.png 217w\" sizes=\"(max-width: 262px) 100vw, 262px\" \/><\/p>\n<p>Script (sh):<\/p>\n<p><div class=\"su-divider su-divider-style-default\" style=\"margin:15px 0;border-width:3px;border-color:#999999\"><\/div><br \/>\n<code><br \/>\npassword=\"openspot\"<br \/>\nserver=\"openspot.local\"<br \/>\ntoken=\"Login first (1) !!\"<br \/>\nshowMenu(){<br \/>\necho \"---------------------------\"<br \/>\necho \" \"<br \/>\necho \"      openSPOT menu\"<br \/>\necho \" \"<br \/>\necho \" Server: \"$server<br \/>\necho \" Password:\" $password<br \/>\necho \" Token:\" $token<br \/>\necho \" \"<br \/>\necho \"---------------------------\"<br \/>\necho \"|[1] Login to openSPOT !! |\"<br \/>\necho \"|[2] Check Authorisation  |\"<br \/>\necho \"|[3] Show Token Info      |\"<br \/>\necho \"|[4] openSPOT Info        |\"<br \/>\necho \"|[5] Networksettings      |\"<br \/>\necho \"|[6] Radio Status         |\"<br \/>\necho \"|[7] openSPOT Profiles    |\"<br \/>\necho \"|[8] Logout               |\"<br \/>\necho \"|[9] Reboot openSPOT      |\"<br \/>\necho \"|[0] Exit Menu            |\"<br \/>\necho \"---------------------------\"<br \/>\nread -p \"Please Select A Number: \" mc<br \/>\nreturn $mc<br \/>\n}<br \/>\nwhile [[ \"$m\" != \"0\" ]]\ndo<br \/>\nif [[ \"$m\" == \"1\" ]]; then<br \/>\necho \" \"<br \/>\necho \"Get token from sharkRF Openspot\"<br \/>\ntokenurl=`curl http:\/\/$server\/gettok.cgi| sed 's\/{\"token\":\"\/\/'|sed 's\/\"}\/\/'`<br \/>\ntoken=${tokenurl}<br \/>\ndigest=`echo -n ${tokenurl}${password} | shasum -a 256 | sed 's\/-\/\/'`<br \/>\njwt=`curl -X POST  --header \"Content-Type: application\/json\" --data \"{\\\"token\\\":\\\"$token\\\",\\\"digest\\\":\\\"$digest\\\"}\"  \"http:\/\/$server\/login.cgi\" | sed 's\/{\"hostname\":\"openspot\",\"jwt\":\"\/\/'|sed 's\/\"}\/\/'`<br \/>\nelif [[ \"$m\" == \"2\" ]]; then<br \/>\necho \"Checking authorisation\"<br \/>\ncurl -H \"Authorization: Bearer $jwt\" http:\/\/$server\/checkauth.cgi | json_pp<br \/>\nelif [[ \"$m\" == \"3\" ]]; then<br \/>\necho \"Token: \"$token<br \/>\necho \"Digest: \"$digest<br \/>\necho \"JWT: \"$jwt<br \/>\nelif [[ \"$m\" == \"4\" ]]; then<br \/>\necho  \"Getting info\"<br \/>\ncurl -H \"Authorization: Bearer $jwt\" http:\/\/$server\/info.cgi | json_pp<br \/>\nelif [[ \"$m\" == \"5\" ]]; then<br \/>\ncurl -H \"Authorization: Bearer $jwt\" http:\/\/$server\/netsettings.cgi | json_pp<br \/>\nelif [[ \"$m\" == \"6\" ]]; then<br \/>\ncurl -H \"Authorization: Bearer $jwt\" http:\/\/$server\/status.cgi | json_pp<br \/>\nelif [[ \"$m\" == \"7\" ]]; then<br \/>\ncurl -H \"Authorization: Bearer $jwt\" http:\/\/$server\/cpsettings.cgi | json_pp<br \/>\nelif [[ \"$m\" == \"8\" ]]; then<br \/>\ncurl -H \"Authorization: Bearer $jwt\" http:\/\/$server\/logout.cgi | json_pp<br \/>\ntoken=\"Login first (1) !!\"<br \/>\ndigest=\"\"<br \/>\njwt=\"\"<br \/>\nelif [[ \"$m\" == \"9\" ]]; then<br \/>\ncurl -H \"Authorization: Bearer $jwt\" http:\/\/$server\/reboot.cgi | json_pp<br \/>\ntoken=\"Login first (1) !!\"<br \/>\nfi<br \/>\nshowMenu<br \/>\nm=$?<br \/>\ndone<br \/>\nexit 0;<br \/>\n<\/code><\/p>\n<div class=\"su-divider su-divider-style-default\" style=\"margin:15px 0;border-width:3px;border-color:#999999\"><\/div>\n<p>I build a profile switcher menu, check it out <a href=\"https:\/\/einstein.amsterdam\/?page_id=1768\">here<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>I build this simple login script because i was tired of manual logging in every time. I will continue building this script. Script (sh): password=&#8221;openspot&#8221; <a class=\"mh-excerpt-more\" href=\"https:\/\/einstein.amsterdam\/?page_id=1745\" title=\"SharkRF openSPOT API Script\">[&#8230;]<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/einstein.amsterdam\/index.php?rest_route=\/wp\/v2\/pages\/1745"}],"collection":[{"href":"https:\/\/einstein.amsterdam\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/einstein.amsterdam\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/einstein.amsterdam\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/einstein.amsterdam\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1745"}],"version-history":[{"count":21,"href":"https:\/\/einstein.amsterdam\/index.php?rest_route=\/wp\/v2\/pages\/1745\/revisions"}],"predecessor-version":[{"id":1820,"href":"https:\/\/einstein.amsterdam\/index.php?rest_route=\/wp\/v2\/pages\/1745\/revisions\/1820"}],"wp:attachment":[{"href":"https:\/\/einstein.amsterdam\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}