{"id":53015,"date":"2019-11-21T00:00:00","date_gmt":"2019-11-20T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/hranilishhe-key-value-ili-kak-nashi-prilozheniya-stali-udobnee"},"modified":"2020-02-18T14:00:51","modified_gmt":"2020-02-18T11:00:51","slug":"hranilishhe-key-value-ili-kak-nashi-prilozheniya-stali-udobnee","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/hranilishhe-key-value-ili-kak-nashi-prilozheniya-stali-udobnee","title":{"rendered":"Nyckel-v\u00e4rdeslagring, eller hur v\u00e5ra applikationer blev mer praktiska","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/Voximplant\/blog\/476452\/\"><img decoding=\"async\" alt=\"Nyckel-v\u00e4rdeslagring, eller hur v\u00e5ra applikationer blev mer praktiska\" src=\"\/wp-content\/uploads\/2019\/11\/686d1669d32a1fb5c5a42cf6c068b19b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Den som utvecklar p\u00e5 Voximplant k\u00e4nner till konceptet \"applikationer\", som kopplar samman molnscheman, telefonnummer, anv\u00e4ndare, regler och samtalsk\u00f6er. Enkelt uttryckt \u00e4r applikationer h\u00f6rnstenen i utvecklingen p\u00e5 v\u00e5r plattform, ing\u00e5ngspunkten f\u00f6r varje Voximplant-baserad l\u00f6sning, eftersom det hela b\u00f6rjar med skapandet av en applikation.<\/p>\n<p>Tidigare \"kom ih\u00e5g\" inte applikationerna varken \u00e5tg\u00e4rder som scenarierna utf\u00f6rde eller ber\u00e4kningsresultat, s\u00e5 utvecklare var tvungna att spara v\u00e4rden i externa tj\u00e4nster eller p\u00e5 sin egen backend. Om du n\u00e5gonsin har arbetat med lokal lagring i webbl\u00e4saren, \u00e4r v\u00e5r nya funktionalitet ganska liknande, eftersom den till\u00e5ter applikationer att spara \"nyckel-v\u00e4rde\"-par som \u00e4r unika f\u00f6r varje applikation i ditt konto. Lagringens funktionalitet blev m\u00f6jlig tack vare den nya modulen <noindex><a rel=\"nofollow\" href=\"https:\/\/voximplant.com\/docs\/references\/voxengine\/applicationstorage\">ApplicationStorage<\/a><\/noindex> \u2013 nedanf\u00f6r hittar du en kort guide f\u00f6r hur den anv\u00e4nds, v\u00e4lkommen!<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Du kommer att beh\u00f6va<\/h2>\n<p><\/p>\n<ul>\n<li>ett Voximplant-konto. Om du inte har ett, s\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/voximplant.com\/sign-up\/\">registreringen finns h\u00e4r<\/a><\/noindex>;<\/li>\n<li>en Voximplant-applikation, samt ett scenario, en regel och en anv\u00e4ndare. Allt detta kommer vi att skapa i denna handledning;<\/li>\n<li>en webbl\u00e4sarklient f\u00f6r att g\u00f6ra ett samtal \u2013 vi kommer att anv\u00e4nda v\u00e5r webbtelefon <noindex><a rel=\"nofollow\" href=\"https:\/\/phone.voximplant.com\/\">phone.voximplant.com<\/a><\/noindex>.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Voximplant-inst\u00e4llningar<\/h2>\n<p>\nF\u00f6rst loggar du in p\u00e5 ditt konto: <noindex><a rel=\"nofollow\" href=\"https:\/\/manage.voximplant.com\/auth\">manage.voximplant.com\/auth<\/a><\/noindex>. I menyn till v\u00e4nster klickar du p\u00e5 \"Applikationer\", sedan \"Ny applikation\" och skapar en applikation med namnet storage. G\u00e5 in i den nya applikationen, v\u00e4xla till fliken \"Scenarier\" f\u00f6r att skapa scenariot countingCalls med f\u00f6ljande kod:<\/p>\n<pre><code class=\"javascript\">require(Modules.ApplicationStorage);\n\nVoxEngine.addEventListener(AppEvents.CallAlerting, async (e) =&gt; {\nlet r = {value: -1};\n\n    try {\n        r = await ApplicationStorage.get('totalCalls');\n        if (r === null) {\n            r = await ApplicationStorage.put('totalCalls', 0);\n        }\n    } catch(e) {\n        Logger.write('Misslyckande vid h\u00e4mtning av totalCalls-v\u00e4rdet');\n    }\n\n    try {\n        await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);\n    } catch(e) {\n        Logger.write('Misslyckande vid uppdatering av totalCalls-v\u00e4rdet');\n    }\n    \n    e.call.answer();\n    e.call.say(`V\u00e4lkommen. Antalet tidigare samtal: ${r.value}. `, Language.RU_RUSSIAN_MALE);\n\n    e.call.addEventListener(CallEvents.PlaybackFinished, VoxEngine.terminate);\n\n});<\/code><\/pre>\n<p>\nDen f\u00f6rsta raden ansluter ApplicationStorage-modulen, medan resten av logiken placeras i h\u00e4ndelsehanteraren <noindex><a rel=\"nofollow\" href=\"https:\/\/voximplant.com\/docs\/references\/voxengine\/appevents#callalerting\">CallAlerting<\/a><\/noindex>.<\/p>\n<p>F\u00f6rst deklarerar vi en variabel s\u00e5 att vi kan j\u00e4mf\u00f6ra startv\u00e4rdet med samtalsr\u00e4knaren. Vi f\u00f6rs\u00f6ker sedan f\u00e5 v\u00e4rdet av nyckeln totalCalls fr\u00e5n lagringen. Om en s\u00e5dan nyckel inte finns skapar vi den:<\/p>\n<pre><code class=\"javascript\">try {\n    r = await ApplicationStorage.get('totalCalls');\n    if (r === null) {\n        r = await ApplicationStorage.put('totalCalls', 0);\n    }\n}<\/code><\/pre>\n<p>\nD\u00e4refter beh\u00f6ver vi \u00f6ka v\u00e4rdet av nyckeln i lagringen:<\/p>\n<pre><code class=\"javascript\">try {\n        await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);\n    }<\/code><\/pre>\n<p><\/p>\n<blockquote><p>OBS!<\/p>\n<p>F\u00f6r varje p\u00e5st\u00e5ende m\u00e5ste vi tydligt ange hantering av avvisning, som visas i listan ovan \u2013 annars kommer skriptet att stoppas och du kommer att se ett fel i loggarna. Detaljer <noindex><a rel=\"nofollow\" href=\"https:\/\/voximplant.com\/blog\/cloud-side-javascript-promise-handling-update\">). Ett typiskt exempel p\u00e5 anv\u00e4ndning:<\/a><\/noindex>.<\/p><\/blockquote>\n<p> Efter att ha arbetat med lagringen svarar skriptet p\u00e5 det inkommande samtalet med hj\u00e4lp av r\u00f6stsyntes och ber\u00e4ttar hur m\u00e5nga g\u00e5nger du har ringt tidigare. Efter detta meddelande avslutar skriptet sessionen.<\/p>\n<p>Efter att du har sparat skriptet g\u00e5r du till fliken \"Routing\" i din applikation och klickar p\u00e5 \"Nytt regelverk\". Ge den namnet startCounting, ange skriptet countingCalls och l\u00e4mna m\u00f6nstret som standard (.*).<\/p>\n<p><img decoding=\"async\" alt=\"Nyckel-v\u00e4rdeslagring, eller hur v\u00e5ra applikationer blev mer praktiska\" src=\"\/wp-content\/uploads\/2019\/11\/5f7452211a61dd98ccbdcbfac3f7ccd9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nSista steget \u2013 skapa en anv\u00e4ndare. F\u00f6r detta, g\u00e5 till \"Anv\u00e4ndare\", klicka p\u00e5 \"Skapa anv\u00e4ndare\", ange ett namn (till exempel user1) och ett l\u00f6senord, och klicka sedan p\u00e5 \"Skapa\". Detta anv\u00e4ndarnamn-l\u00f6senord par beh\u00f6vs f\u00f6r autentisering i webbtelefonen.<\/p>\n<h2>Kontrollerar<\/h2>\n<p>\n\u00d6ppna webbtelefonen via l\u00e4nken <noindex><a rel=\"nofollow\" href=\"https:\/\/phone.voximplant.com\/\">phone.voximplant.com<\/a><\/noindex> och logga in med kontonamn, applikationsnamn och anv\u00e4ndarens anv\u00e4ndarnamn-l\u00f6senordsparet fr\u00e5n applikationen. Efter lyckad inloggning, skriv in valfri teckenstr\u00e4ng i inmatningsf\u00e4ltet och klicka p\u00e5 Samtal. Om allt har gjorts korrekt kommer du att h\u00f6ra det syntetiserade v\u00e4lkomnandet!<\/p>\n<p>Vi \u00f6nskar dig lycka till med utvecklingen p\u00e5 Voximplant och h\u00e5ll dig uppdaterad \u2013 vi har mycket mer p\u00e5 g\u00e5ng \ud83d\ude09<br \/>\n<br \/>K\u00e4lla: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/Voximplant\/blog\/476452\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0422\u043e\u0442, \u043a\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 Voximplant, \u0437\u043d\u0430\u0435\u0442 \u043e \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u00ab\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u044e\u0442 \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438, \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043d\u044b\u0435 \u043d\u043e\u043c\u0435\u0440\u0430, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0437\u0432\u043e\u043d\u043a\u043e\u0432. \u041f\u0440\u043e\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2013 \u044d\u0442\u043e \u043a\u0440\u0430\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u043c\u0435\u043d\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430 \u043d\u0430\u0448\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435, \u0432\u0445\u043e\u0434\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0432 \u043b\u044e\u0431\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Voximplant, \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0441 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0441\u0435 \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f. \u0420\u0430\u043d\u044c\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u00ab\u043d\u0435 \u043f\u043e\u043c\u043d\u0438\u043b\u0438\u00bb [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-53015","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/hranilishhe-key-value-ili-kak-nashi-prilozheniya-stali-udobnee\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 key-value, \u0438\u043b\u0438 \u043a\u0430\u043a \u043d\u0430\u0448\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043b\u0438 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/hranilishhe-key-value-ili-kak-nashi-prilozheniya-stali-udobnee\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-11-20T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:00:51+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Key-value lagring, eller hur v\u00e5ra applikationer har blivit mer anv\u00e4ndarv\u00e4nliga | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/hranilishhe-key-value-ili-kak-nashi-prilozheniya-stali-udobnee","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 key-value, \u0438\u043b\u0438 \u043a\u0430\u043a \u043d\u0430\u0448\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043b\u0438 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 | ProHoster","og:url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/hranilishhe-key-value-ili-kak-nashi-prilozheniya-stali-udobnee","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-11-20T21:00:00+00:00","article:modified_time":"2020-02-18T11:00:51+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"53015","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 05:45:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:32:32","updated":"2026-01-24 05:45:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/53015","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=53015"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/53015\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=53015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=53015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=53015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}