<?xml version="1.0" encoding="utf-8"?>

<rss version="2.0">
 <channel>
	<title>Маркетплейс Битрикс24</title>
	<link>http://dev.1c-bitrix.ru/community/blogs/b24_marketplace/</link>
	<description>Советы и рецепты для разработчиков приложений</description>
	<language>ru</language>
	<docs>http://backend.userland.com/rss2</docs>
	<pubDate>Fri, 10 Apr 2026 15:48:51 +0300</pubDate>

    <item>
      <title>Как внешнее приложение может продлять авторизацию без участия пользователя?</title>
      <description><![CDATA[Отвечаем.<br /><br />Приложение может продлять авторизацию до тех пор, пока оно обращается к сервису хотя бы раз в месяц. Вот примерное описание механизма (на основе <noindex><a href="http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&amp;LESSON_ID=5379&amp;LESSON_PATH=3913.5377.5379):" target="_blank" rel="nofollow" >http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&amp;LESSON_ID=5379&amp;LESSON_PATH=3913.5377.5379):</a></noindex><br /><br />1. При помощи client_id приложение стандартным способом получает параметр code, требуемый для получения авторизационного токена.<br />2. При помощи clent_id, client_secret и code приложение получает параметры access_code и refresh_token.<br />3. При помощи access_code приложение совершает запросы к REST-сервису до его истечения.<br />4. Через час access_code истекает, и приложение может использовать полученный refresh_token для получения нового. <br />5. Если refresh_token еще не истек (с момента его получения не прошел месяц), то приложение получает свежий access_code и свежий refresh_token, после чего, можно перейти к шагу 3. <br />6. Если refresh_token уже истек, то требуется повторная авторизация с участием пользователя. <br /><br />По сути, физическая авторизация пользователя требуется только на шаге 1. В итоге получаем, что если приложение используется постоянно (шаг 4 используется чаще раза в месяц), то приложение имеет возможность продлевать авторизацию не трогая пользователя сколь угодно долго.<br /><br />P.S. это относится только к приложениям третьего типа, в соответствии с логическим разделением в <noindex><a href="https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&amp;LESSON_ID=5378&amp;LESSON_PATH=3913.5377.5378" target="_blank" rel="nofollow" >документации</a></noindex>. Приложения первого и второго типов получают и продляют авторизацию автоматически.<br /><a href="http://dev.1c-bitrix.ru/community/blogs/b24_marketplace/8324.php">Подробнее...</a>]]></description>
      <link>http://dev.1c-bitrix.ru/community/blogs/b24_marketplace/8324.php</link>
      <guid>http://dev.1c-bitrix.ru/community/blogs/b24_marketplace/8324.php</guid>
      <pubDate>Thu, 29 Aug 2013 11:07:06 +0400</pubDate>
    </item>

    <item>
      <title>Маркетплейс Битрикс24: как сделать OAuth-авторизацию для desktop-приложения</title>
      <description><![CDATA[Поскольку эта тема вызывает вопросы в техподдержке, выложу здесь инструкцию &quot;с нуля&quot;.<br /><br />Десктопное приложение должно слушать какой-либо порт на localhost. Как именно это сделать - зависит от выбранных средств разработки приложений. Пусть для примера это будет 7000.<br /><br />1. Зарегистрировать в МП приложение с отмеченной галочкой &quot;Использует только API&quot; (не обязательно, но типично).<br />2. Создать в МП версию приложения, указывая ссылку вида <noindex><a href="http://localhost:7000/" target="_blank" rel="nofollow" >http://localhost:7000</a></noindex>.<br />3. Установить созданную версию на тестовый портал при помощи ссылки &quot;Установить на свой портал Битрикс24&quot; в форме редактирования версии.<br /><br />Далее действуем в соответствии с учебным курсом <noindex><a href="http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&amp;LESSON_ID=5379&amp;LESSON_PATH=3913.5377.5379" target="_blank" rel="nofollow" >http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&amp;LESSON_ID=5379&amp;LESSON_PATH=3913.5377.5379</a></noindex><br /><br />4. Для авторизации нужно открыть браузерное окно (или встроить соответствующий контрол в свое приложение) на адрес вида:<br />
====code====
<pre>https://мой_портал.bitrix24.ru/oauth/authorize/?client_id=код_приложения&#38;response_type=code&#38;redirect_uri=http%3A%2F%2Flocalhost%3A70005</pre>
=============
5. В этом браузерном окне произойдет редирект на адрес вида:<br />
====code====
<pre>http://localhost:7000/?code=код_получения_авторизации&#38;domain=мой_портал.bitrix24.ru</pre>
=============
После получения этих данных браузер больше не нужен.<br /><br />6. Далее приложение должно сделать http-запрос (каким угодно способом, но лучше без участия браузера) к адресу вида:<br />
====code====
<pre>https://мой_портал.bitrix24.ru/oauth/token/?client_id=код_приложения&#38;grant_type=authorization_code&#38;client_secret=секретный_ключ_приложения&#38;redirect_uri=http%3A%2F%2Flocalhost%3A70005&#38;code=код_получения_авторизации&#38;scope=требуемый_набор_разрешений</pre>
=============
7. В ответ сервер вернет json-строку со всеми необходимыми для совершения запросов к серверу данными.<br />
====code====
<pre>{"access_token":"ключ для отправки запросов к REST-сервису","expires_in":3600,"scope":"user","refresh_token":"ключ для продления авторизации","domain":"мой_портал.bitrix24.ru"}</pre>
=============
Все, приложение может совершать запросы к REST-сервису.<br /><br />Выданный access_token живет в течение часа (expires_in). А возможность практически вечного продления авторизации я опишу в <noindex><a href="http://dev.1c-bitrix.ru/community/blogs/b24_marketplace/as-an-external-application-can-renew-the-authorization-without-user-in.php" target="_blank" rel="nofollow" >следующем посте</a></noindex>.<br /><a href="http://dev.1c-bitrix.ru/community/blogs/b24_marketplace/8323.php">Подробнее...</a>]]></description>
      <link>http://dev.1c-bitrix.ru/community/blogs/b24_marketplace/8323.php</link>
      <guid>http://dev.1c-bitrix.ru/community/blogs/b24_marketplace/8323.php</guid>
      <pubDate>Thu, 29 Aug 2013 11:01:45 +0400</pubDate>
    </item>

  </channel>
</rss>