---
id: Twitter
sidebar_class_name: Twitter
keywords: [1C, 1С, 1С:Предприятие, 1С:Предприятие 8.3, API, Интеграция, Сервисы, Обмен, OneScript, CLI, Twitter]
---

<img src={require('../../static/img/APIs/Twitter.png').default} width='64px' />

# Twitter | X

Этот раздел посвящен библиотеке для работы с Twitter API в 1С:Предприятие, OneScript и CLI. На данной странице описаны все действия, необходимые для полноценного начала работы. Данная библиотека позволяет работать с функционалом бесплатного плана, т.е. создавать твиты. 

### Начало работы

  
Работа с Twitter подразумевает работу с двумя API - v1 (1.1) и v2, каждый из которых отвечает за свою часть функционала. Для начала работы с ними, необходимо сформировать определенный набор данных и параметров авторизации. Его структура описанна в функции `ПолучитьСтандартныеПараметры`


```bsl

	Параметры_.Вставить("redirect_uri"         , "");
	Параметры_.Вставить("scope"                , "");
	Параметры_.Вставить("client_id"            , "");
	Параметры_.Вставить("client_secret"        , "");
	Параметры_.Вставить("access_token"         , ""); 
	Параметры_.Вставить("refresh_token"        , ""); 
	Параметры_.Вставить("oauth_token"          , "");
	Параметры_.Вставить("oauth_token_secret"   , "");
	Параметры_.Вставить("oauth_consumer_key"   , "");
	Параметры_.Вставить("oauth_consumer_secret", "");

```

Вы можете определить эти параметры прямо в структуре внутри данной функции или передавать непосредственно при вызове функций уже для работы с API - каждая из них принимает параметры последним необязательным параметром. При такой передаче стандартные параметры будут перезаписаны по ключам. Рассмотрим создание приложения и получение каждого поля


### Создание приложения

Для работы с Twitter API необходимо перейти по адресу [developer.twitter.com](https://developer.twitter.com/), зарегистрироваться и пройти процедуру создания нового приложения. После этого, в панели управления приложением, нужно определить поля, требуемые для создания структуры авторизации:


- **redirect_uri**
	
	`redirect_uri` - адрес обработчика http-запросов, указанный при регистрации. Авторизация API v2 требует подтверждения входа через браузер, после которого запрос со специальным кодом на данный обработчик должен будет прийти. Подробнее в пункте *access_token и refresh_token*.
	
	
- **scope**

	scope определяет доступные для работы функции. В *ПолучитьСтандартныеПараметры()* список scope определен по умолчанию.
	
- **client_id**

	ID клиента может быть найден на главной странице настроек в разделе *OAuth 2.0 Clien ID and Client Secret*

- **client_secret**

	Секрет клиента может быть сгенерирован при помощи кнопки `Generate` в том же разделе, что и ID клиента


- **oauth_token** и **oauth_token_secret**

	Могут быть сгененрированы в разделе *Authentication Tokens*, пунтк *Access Token and Secret*

- **oauth_consumer_key** и **oauth_consumer_secret**

	Могут быть сгенерированы в разделе *Consumer Keys*, пунт *API Key and Secret*
	
- **access_token** и **refresh_token**

Эти токены необходимо получить http запросом с указанием кода, который приходит при авторизации на http-сервис `redirect_uri`.Порядок действий:

1. Создать ссылку для авторизации в браузере при помощи функции `ПолучитьСсылкуАвторизации`
2. Добавить в модуль http-сервиса (GET) вызов функции `ОбработкаВходящегоЗапросаПослеАвторизации`, передавая `HTTPСервисЗапрос` как параметр.
3. Авторизоваться в браузере по ссылке из п.1.
3. Сохранить **access_token** и **refresh_token**, полученные из функции `ОбработкаВходящегоЗапросаПослеАвторизации` п. 2, в константы или другое хранилище


```bsl title="Получение"

	Функция Twitterget(Запрос)
		
		Код         = Запрос.ПараметрыЗапроса["code"];	
		ОтветТокен  = OPI_Twitter.ПолучитьТокен(Код, Параметры);
		
		Константы.TwitterRefresh.Установить(ОтветТокен["refresh_token"]);
		Константы.TwitterToken.Установить(ОтветТокен["access_token"]);
		
		Ответ = Новый HTTPСервисОтвет(200);
		Возврат Ответ;
		
	КонецФункции

```

```bsl title="Обновление"

	Процедура ОбновлятьТокенКаждыеДваЧаса(Знач Параметры) 
	
		Ответ = OPI_Twitter.ОбновитьТокен(Параметры);
		Константы.TwitterToken.Установить(Ответ["access_token"]);
		Константы.TwitterRefresh.Установить(Ответ["refresh_token"]);

	КонецПроцедуры
```

Access_token действует 2 часа. По истечении этого времени, токен необходимо обновить при помощи функции `ОбновитьТокен`. При этом обновляется как `access_token`, так и `refresh_token`. Т.е. при следующем обновлении сгоревшего `access_token`, `refresh_token` должен быть из **предыдущего** запроса

После определения всех полей и создания структуры авторизации, они могут быть использованы в различных функция библиотеки для выполнения конкретных действий