Отправка контента в Яндекс "Оригинальные тексты" из компонента K2

2015-07-29
4.7 / 5 (3 vote)

Не так давно Яндекс удосужился повысить ТИЦ моего сайта до 10 и теперь я также могу добавлять свои тексты сразу в Яндекс "Оригинальные тексты". А тут еще и новый заказчик захотел отправлять свои тексты прям из компонента K2 (Joomla). Поэтому изучив документацию, приступаем к выполнению работы.

p.s. в поисковиках к сожалению ничего подобного для joomla+k2 не нашел :(


Постараюсь максимально подробно и просто описать весь процесс, так как в будущем, уверен, и самому пригодится.

1 Создаем новое приложение, для доступа к данным Яндекса по ссылке https://oauth.yandex.ru/

* Заполняем поля названия, Ссылка на сайт приложения, и обязательно Callback URL. В Callback URL ссылка поставится автоматом, просто нажмите на ссылку "Подставить URL для разработки". В графе "доступ" выбираете "Яндекс Вебмастер" и ставите галочку возле "Добавлять сайты в сервис Яндекс.Вебмастер и получать информацию о статусе индексирования". Теперь сохраняем.

* В итоге вам будет выдан ID и пароль приложения

Получение ID и пароля в Яндекс OAuth

2 Получаем id сайта, на котором будут публиковаться "оригинальные тексты"

Сделать это можно зайдя в Яндекс.Вебмастер и выбрав нужный вам сайт. В урл вы увидете host= а далее идет id вашего сайта.

Получение ID сайта в Яндекс OAuth

3 Получаем код подтверждения

Для этого в браузере открываем ссылку https://oauth.yandex.ru/authorize?response_type=code&client_id=0e0fcc81745641018bc977e13f9bef95 

Где 0e0fcc81745641018bc977e13f9bef95 - это id ВАШЕГО приложения, полученный при создании приложения.

ВНИМАНИЕ, код подтверждения выдаётся на очень короткий промежуток, но его можно запрашивать неограниченное кол-во раз

Получение кода подтверждения в Яндекс OAuth

4 Получаем основной токен, с помощью которого скрипт будет добавлять ваш контент в Яндекс Оригинальные Тексты

Токен, можно получить разными способами, и есть куча описаний в интернете, но я сделал для себя удобную форму, в которую ввожу ID приложения, Пароль приложения и Код подтверждения http://demo.gaalferov.com/get_token.php

ВНИМАНИЕ, если вы ввели верно ID приложения, пароль приложения и Код, но в ответ получаете ошибку, значит код подтверждения уже просрочился и необходимо получить новый!

Получение ТОКЕНА в Яндекс OAuth

p.s. Никакой информации я себе не записываю, пример данного скрипта, вы можете скачать внизу страницы и запустить у себя на хостинге.

p.s2. Токен выдаётся сроком на 3 месяца, потом надо получать новый

Всё, данные мы подготовили и теперь можно приступать к редактированию файлов Joomla


5 Обновление Joomla файлов, а также добавление новой таблицы

Для полноценной работы, необходимо будет отредактировать файлы, добавить в базу 1 таблицу, а также внести ваш id сайта и токен в настройки K2

Отредактированы файлы:

/administrator/components/com_k2/config.xml (добавилось 2-а параметра, ya_token и ya_site_id)
/administrator/components/com_k2/controllers/item.php (добавлена функция addOriginalText)
/administrator/components/com_k2/helpers/yapi.php (класс для отправки контента в яндекс)
/administrator/components/com_k2/models/item.php (добавлены две функции:getDataYaText, AddOriginalText)
/administrator/components/com_k2/views/item/view.html.php (добавлен запрос на получение данных с базы, о добавлении контента в яндекс)
/administrator/components/com_k2/views/item/tmpl/default.php (добавлена кнопка для отправки контента в яндекс)
/media/k2/assets/js/k2.js (добавлен обработчик addOriginalTextButton, при нажатии кнопки отправки в яндекс)

Кнопка отправки контента в Яндекс оригинальные текстыПолучение кода подтверждения в Яндекс OAuth

Добавляем таблицу:

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

CREATE TABLE IF NOT EXISTS `#__k2_ya_texts` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `date` date DEFAULT NULL,
  `post_id` int(11) DEFAULT NULL,
  `yandex_text_id` varchar(255) DEFAULT NULL,
  `yandex_link` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `post_id` (`post_id`),
  KEY `yandex_id` (`yandex_text_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

 

Read 2865 times Last modified on 2019-07-21

Leave a comment

Make sure you enter the (*) required information where indicated. HTML code is not allowed.