{"componentChunkName":"component---src-templates-docs-js","path":"/api-externa/sms/api-http/authentication","result":{"data":{"site":{"siteMetadata":{"title":"broadcaster","docsLocation":"https://github.com","docsLocationType":"github","editable":false}},"mdx":{"fields":{"id":"ed971635-8849-5655-b11b-98ca030a94a1","title":"Paso 1 - Obtener el Token","slug":"/api-externa/sms/api-http/authentication"},"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Paso 1 - Obtener el Token\",\n  \"order\": 1\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Info = makeShortcode(\"Info\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"Realiza un \", mdx(\"b\", null, \"POST\"), \" al siguiente endpoint de Keycloak con tus credenciales de API:\"), mdx(\"br\", null), mdx(\"table\", null, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"URL\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"https://sso2.broadcastermobile.com/realms/broadcaster-api-external/protocol/openid-connect/token\"))), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"METHOD\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"POST\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"HEADERS\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Content-Type: application/x-www-form-urlencoded\")))), mdx(\"br\", null), mdx(\"section\", null, mdx(\"h3\", {\n    parentName: \"section\"\n  }, \"Body\"), mdx(\"pre\", {\n    parentName: \"section\"\n  }, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"grant_type=client_credentials\\nclient_id=<TU_CLIENT_ID>\\nclient_secret=<TU_SECRET>\\n\")), mdx(\"br\", null), mdx(\"table\", {\n    parentName: \"section\"\n  }, mdx(\"thead\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"thead\"\n  }, mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Par\\xE1metros\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Descripci\\xF3n\"), mdx(\"th\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Obligatorio\"))), mdx(\"tbody\", {\n    parentName: \"table\"\n  }, mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"grant_type\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Debe enviarse siempre como \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"client_credentials\"), \".\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"S\\xED\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"client_id\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Identificador de la llave de API asignada a tu cuenta.\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"S\\xED\")), mdx(\"tr\", {\n    parentName: \"tbody\"\n  }, mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"client_secret\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"Secreto asociado al \", mdx(\"inlineCode\", {\n    parentName: \"td\"\n  }, \"client_id\"), \".\"), mdx(\"td\", {\n    parentName: \"tr\",\n    \"align\": null\n  }, \"S\\xED\")))), mdx(\"br\", null)), mdx(\"section\", null, mdx(\"h3\", {\n    parentName: \"section\"\n  }, \"Respuesta exitosa\"), mdx(\"pre\", {\n    parentName: \"section\"\n  }, mdx(\"code\", {\n    parentName: \"pre\",\n    \"className\": \"language-json\"\n  }, \"{\\n  \\\"access_token\\\": \\\"eyJhbGci...\\\",\\n  \\\"expires_in\\\": 600,\\n  \\\"token_type\\\": \\\"Bearer\\\"\\n}\\n\")), mdx(\"br\", null), mdx(\"p\", {\n    parentName: \"section\"\n  }, \"Guarda el valor de \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"access_token\"), \". Tiene 10 minutos de vida (\", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"expires_in\"), \" en segundos).\"), mdx(Info, {\n    mdxType: \"Info\"\n  }, mdx(\"p\", {\n    parentName: \"section\"\n  }, \"El token para el portal es un token de usuario (realm \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"broadcaster\"), \"). El token para enviar SMS es un token de m\\xE1quina (realm \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"broadcaster-api-external\"), \") que obtienes con el flujo \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"client_credentials\"), \" y tu llave de API. No son intercambiables.\"))));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#body","title":"Body"},{"url":"#respuesta-exitosa","title":"Respuesta exitosa"}]},"timeToRead":1,"parent":{"__typename":"File","relativePath":"api-externa/sms/api-http/authentication.md","fields":{"gitLogLatestAuthorName":"Yered Rios","gitLogLatestAuthorEmail":"yered.rios@conceptomovil.com","gitLogLatestDate":"2 months ago"}},"frontmatter":{"metaTitle":null,"showMetadata":null,"editable":null,"showPreviousNext":null,"showToc":null}},"gitBranch":{"name":"DEV"},"gitCommit":{"hash":"653d4d48e7c023d6d0792f6d3212f540ef8d669e","date":"2026-09-01 04:50"}},"pageContext":{"id":"ed971635-8849-5655-b11b-98ca030a94a1"}},"staticQueryHashes":["12478684","12478684","2882937274","2882937274","353167761","353167761"]}