Ок api как получить посты. Решение проблемы api initialization failed в Одноклассниках. Создание нового приложения

Размещение статей в группе весьма положительно сказывается на трафике сайта в целом. Так же, автоматический постинг статьи в группе на Одноклассниках экономит вам время. В данной статье мы расскажем, и главное покажем, как реализовать данную идею на php.

Для начала нам нужно создать приложение в одноклассниках.

Для добавления приложения на сайт Одноклассники необходимо:

  1. Зарегистрироваться на портале Одноклассники и привязать к своему аккаунту email - на этот email будут приходить письма, содержащие регистрационные данные приложений.
  2. Получить права разработчика по ссылке https://ok.ru/devaccess .

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

Чтобы создать новое приложение перейдите по этой ссылке . Далее нажимаем на "Подключить oAuth" и заполняем поля формы.

После заполнения формы, нажимаем на кнопку Сохранить. Наше приложение создано!

Проверяем почту и видим там письмо от Одноклассников, в котором:

На почту [email protected] пишем письмо, с просьбой о выдачи приложению этих прав, с описанием того, зачем вам эти права.

Желательно написать с адреса вида [email protected] с примерным текстом:

Здравствуйте!

ID приложения: XXXXXXXXXXXXX

Нужны права GROUP_CONTENT которые позволят осуществлять постинг в группу в одноклассниках.

Заранее благодарны!

И только после выдачи этих прав доступа, наше приложение будет полностью готовым.

Обращаем ваше внимание, что нам отвечали ответным письмом, о том что права выданы. Но может быть так, что ответного письма не будет но права вам выдадут, это вы сможете посмотреть в настройках самого приложения.

И так, права нам выданы. Теперь переходим в наши приложения , находим наше созданное приложение, наводим на него мышкой и в появившесмся меню выбираем Настройки

Представляю вашему вниманию шаблон для наполнения групп в Одноклассниках через API. При этом, контент для наполнения тянем с тематических групп Вконтакте, тоже через API. Браузер в работе не задействован.

Для работы шаблона нужно:

1. Создать приложения в Одноклассниках и Вконтакте для получения ключей доступа работы через API.

2. Вручную найти тематические группы Вконтакте и забить их в соответствующий файл.

3. Настроить нужные фильтры.

==============================================================

Вместе с основным шаблоном постинга/парсинга под названием идут еще два шаблона:

1. timetable_generator.xmlz – для генерации дат отложенного постинга. Так как основной шаблон, будет постить в отложенные темы группы Одноклассников.

Данный шаблон генерирует список дат отложенного постинга в формате 2018-02-23 15:00:00 Генерация начинается с текущего дня, диапазон окончания задаем в настройках, в днях.

Разброс времени постинга для каждого дня, нужно будет прописать в самом шаблоне. Подробнее распишу ниже.

2. start_planning.xmlz – для создания стартового файла start_planning.txt При появлении данного файла мы будем запускать основной шаблон. Алгоритмику запуска распишу ниже.

==============================================================

Посты с Вконтакте тянем только в формате текст с картинками . Если в посте будет только текст, он автоматически отбрасывается. Посты с видео, голосованиями, аудио, линками, рекламой, автоматически отбрасываются. Есть дополнительный фильтр для текста поста. Если в тексте поста встречаются части текста, которые мы указали в фильтре, этот пост отбрасывается.

Есть фильтр по блеклисту, который формируется автоматически. Благодаря ему, исключена возможность парсинга одного и того же поста с Вконтакте при последующих попытках парсинга. Так же, есть возможность чистить текст поста от не нужных словосочетаний. При этом, пост не отбрасывается, а просто чистится и дальше идет на постинг.

Данные особенности работы шаблона, были сформированы в работе с кулинарной тематикой. То есть, мне нужно было получать кулинарный рецепт с текстом и картинками, а все остальные виды постов автоматически отметать.

==============================================================

Общая схема работы такая. Шаблон грузит урл группы Вконтакте, парсит всегда первый и второй топик, не больше (закрепленные топики не учитываются) и размещает его в группе Одноклассников в отложенные темы. Второй топик парсится на случай, если в первом топике будет реклама, а второй вдруг подойдет.
При этом, важно, чтобы пост удовлетворял всем фильтрам выставленным в шаблоне. Если не удовлетворяет фильтрам, данный пост игнорируется и грузится следующий урл группы Вконтакте. И так по кругу пока шаб не найдет подходящий топик. На такой перебор есть лимит в 5 попыток, при достижении которого в лог пишет сообщение “STOP! Превышен лимит перебора групп для парсинга " . В этом нет ничего страшного. Для того чтоб данное сообщение появлялось как можно реже, нужно задать как можно больше групп-доноров Вконтакте или сделать периоды между запусками шаблона побольше.

==============================================================

Настраиваем шаблоны:

1. Открываем шаблон bot_posting_group_ok_api.xmlz и во входные настройки вбиваем нижеприведенные ключи доступа.

Переходим в настройки приложения и копируем Сервисный ключ доступа во входные настройки.

3. Создаем приложение в Одноклассниках по этой инструкции https://apiok.ru/dev/app/create
При создании приложения, есть один момент. Нужно обязательно загрузить картинки на аватарки и иконки. Я не заморачивался и тупо вставил рандомные урлы картинок с Гугла (делал поиск по точному размеру изображения).

Привожу скрины минимальных настроек приложения, с которыми у меня все работает.


В настройках приложения, в самом низу, есть кнопка для получения вечного токена. Нажимаем ее и копируем secret_session_key и access_token во входные настройки.

Но это еще не все. Для работы нужен application_key который находится в письме, которое пришло после успешного создания приложения.

Привожу коллаж, на котором старался максимально подробно показать, откуда и куда вставлять нужные ключи доступа.


4. Сохраняем шаблон bot_posting_group_ok_api.xmlz с вышеприведенными настройками и переходим к настройке шаблона timetable_generator.xmlz

5. Открываем шаблон timetable_generator.xmlz на редактирование. И в массиве hours задаем свое время для отложенного постинга. Это время размещения постов на протяжении дня. Достаточно просто отредактировать существующие значения или добавить свои через запятую. Количество дней для генерации дат задаем во входных настройках.

6. Сохраняем шаблон timetable_generator.xmlz с нужными настройками и переходим к настройке шаблона start_planning.xmlz

7. Открываем шаблон start_planning.xmlz на редактирование. И в кубике, показанном на скрине ниже выставляем свое время для создания файла start_planning.txt В моем случае файл будет создаваться в 09, 12, 15, 18 и 21 час по Москве. Логика шаблона достаточно простая. Он по расписанию грузит страницу http://www.unn.ru/time/ и парсит точное время по Москве. Как только час заданный в настройках будет совпадать с текущим временем, он создаст файл start_planning.txt
Этот шаб сделан для того чтоб запускать основной шаблон в точное время суток. Так как в стандартном планировщике нет такой возможности. Как видно я сделал создание файла start_planning.txt через каждые 3 часа начиная с 9 утра и заканчивая 21 часом вечера. Так как днем идет активное обновление пабликов, и с шагом в 3 часа я по любому выйду на парсинг нового контента с групп-доноров. Ночью файл-сигнал start_planning.txt не будет создаваться.

==============================================================

Стартуем шаблоны:

1. Запускаем шаблон start_planning.xmlz по расписанию. Я ставлю шаг запуска 15 мин. Так как 15 мин туда/сюда для меня не критично. Если хотите сделать более точное время для создания файла start_planning.txt уменьшайте шаг.

2. Генерируем список дат для отложенного постинга шаблоном timetable_generator.xmlz

3. Запускаем шаблон bot_posting_group_ok_api.xmlz в работу через диспетчер задач по сигналу. В нашем случае сигналом есть появления файла start_planning.txt созданный шаблоном start_planning.xmlz






=============================================================

Настройки фильтров:

2. Фильтруем посты по вхождению подстроки в текст поста в кубике показанном на скрине.

==============================================================

Рабочая папка:

Все файлы для работы шаблонов находятся в папке {-Project.Directory-}\data_bot_posting_group_ok_api\

1. {-Project.Directory-}\data_bot_posting_group_ok_api\group_list.txt – Файл со списком тематических групп Вконтакте, с которых мы будет парсить контент для наполнения своей группы в Одноклассниках. Задавать урлы на группы нужно без домена https://vk.com

Например, если нам нужно задать группу https://vk.com/cook_idea тогда в файл прописываем только часть урла cook_idea.

И еще момент. Если ссылка на группу идет с id, например https://vk.com/public59476495 тогда в файл мы прописываем только id, то есть 59476495 (без части public). Этот момент важен, так как если пропишите public59476495, будет ошибка.

2. {-Project.Directory-}\data_bot_posting_group_ok_api\system\blacklist.txt – Файл блеклиста, в котором формируется список идентификаторов для постов, которые прошли успешный отбор, и были размещены в группе на Одноклассниках.

Список идентификаторов сохраняется в формате 34451036_1517665921

Где 34451036 – идентификатор группы с которой спарсили топик. 1517665921 – идентификатор самого топика.

Таким образом, мы исключаем возможность взятия одного и того же топика, при слишком частом обращении к группе, в ленте которой еще не появилось обновление.

3. {-Project.Directory-}\data_bot_posting_group_ok_api\system\garbage.txt – Файл для чистки текста поста. В данный файл задаем списком текстовые включения от которых нужно чистить текст поста.

4. {-Project.Directory-}\data_bot_posting_group_ok_api\system\ok_ru_group_id.txt – Идентификатор группы в Одноклассниках которую планируем наполнять. Идентификатор задаем в формате 68902261315610 . Данный идентификатор получаем в настройках группы.

5. {-Project.Directory-}\data_bot_posting_group_ok_api\system\start_planning.txt – Файл-сигнал который создается шаблоном start_planning.xmlz

6. {-Project.Directory-}\data_bot_posting_group_ok_api\system\startHour.txt – Файл нужный для работы шаблона start_planning.xmlz Он туда сохраняет промежуточное время. Этот файл не трогаем.

7. {-Project.Directory-}\data_bot_posting_group_ok_api\system\timetable.txt – В этот файл шаблон timetable_generator.xmlz сохраняет список дат отложенного постинга.

8. {-Project.Directory-}\data_bot_posting_group_ok_api\tempFiles – Папка с временными файлами. Там иногда что-то сохраняется, что-то удаляется. В идеале при старте шаблона и после финиша она должна быть пустой.

9. {-Project.Directory-}\data_bot_posting_group_ok_api\error_log – Папка с подробным логом ошибок. Для формирования данного лога пользуюсь решением, описанным в данной теме но немного урезанной версией. Использую во всех своих шабах, рекомендую.

==============================================================

1. Шаблон bot_posting_group_ok_api.xmlz рассчитан на работу с одним аккаунтом Вконтакте и одним аккаунтов Одноклассников в паре.

2. Аккаунт Одноклассников от имени которого мы работаем через API должен быть администратором групп которые мы планируем наполнять. В моем случае именно так, с модератором я не проверял.

3. Шаблон заточен для наполнения одной группы в Одноклассниках. Это видно из самой структуры рабочих файлов. В файл ok_ru_group_id.txt мы задаем id только одной группы. В файл group_list.txt задаем список групп-доноров для парсинга контента только в одну текущую группу в Одноклассниках.

4. Для постинга в несколько групп, нужно просто скопировать папку с шаблоном и настроить его под другую группу. Лично у меня наполняется таким образом 6 пабликов в Одноклассниках. Соответственно есть 6 папок копий шаблона которые настроены индивидуально под каждую группу.

При этом ключи доступа для API как VK так и OK остаются без изменений. То есть, ключи доступа нужно получить только один раз, вбить их в настройки шаблона и с этими настройками копировать без изменений.

Индивидуально под каждую группу Одноклассников настраиваются только файлы ok_ru_group_id.txt, group_list.txt, garbage.txt, timetable.txt При этом файл blacklist.txt можно почистить от старых данных.

5. В шаблоне bot_posting_group_ok_api.xmlz выставлен лимит на количество перебора групп VK при неподходящем варианте парсинга. Причина такого варианта может быть: пост с видео, голосованиями, аудио, линками. Или в тексте поста есть неподходящие включения по которым данный пост отбрасывается. Или идет фильтр по блеклисту файла blacklist.txt.

6. Все шаблоны запускать только в 1 поток!

7. Мой вариант запуска с формированием файла start_planning.txt можно упустить, если этот вариант запуска вас не устраивает. Главное, сперва сгенерировать список дат для отложки шабом timetable_generator.xmlz и после этого запускать основной шаб bot_posting_group_ok_api.xmlz с соответствующими настройками.

Шаблон рабочий, открытый, делался для себя. Регулярно находится в работе. Если у вас возникнут какие-либо ошибки, просьба заархивировать папку \error_log\ и кинуть в личку.

Что не понятно, спрашивайте. Постараюсь помочь по всем вопросам!

===============================================================
UPDATE 10.01.2020

Дорогие друзья, вышла новая бесплатная версия BotOkPoster v.2.0.1

[+] Добавлена возможность удобно работать в многопоточном режиме. Теперь не нужно копировать шаблон под каждый аккаунт.
[+] Система расписания отложенного постинга генерируется автоматически при первом запуске. Теперь не нужно отдельно генерировать систему расписания другим шаблоном.
[+] Система расписания генерируется с завтрашнего дня на год вперед. Теперь не нужно каждый раз редактировать систему расписания с удалением дат отложки на сегодняшний день.
[+] Оптимизирована файловая структура рабочей папки.
[+] Мелкие исправления.
[+] Шаблон закрыт на редактирование но без каких либо привязок.
[+] Шаблоном можно пользоваться неограниченное количество времени.
[+] Бесплатная поддержка в данной теме и в личке форума.

Или запустить на данном ресурсе приложение, пользователь получает в ответ сообщение «API initialization failed». Подобным сообщением, браузер или приложение уведомляют пользователя о сбое во время подготовки к работе интерфейса управления приложением.

СПРАВКА: API – расшифровывается как Application Programming Interface (интерфейс прикладного программирования). Название говорит само за себя. Интерфейс позволяет взаимодействовать с приложением.

API initialization failed в Одноклассниках – что делать с ошибкой?

Несмотря на то, что данное сообщение выглядит довольно устрашающе, никаких серьезных последствий от данного сбоя нет. Исправить подобную ошибку собственноручно способен любой пользователь, не прибегая к помощи специалиста.

По какой причине возникает подобная проблема? Их может быть несколько:

  • Поражение программной части компьютера или ноутбука вредоносными программами (вирусами).
  • Устаревшее программное обеспечение.
  • Не удалось загрузить плагин.
  • Переизбыток ненужных и временных файлов.

ВНИМАНИЕ: Проблемы могут быть не у пользователя, а у организации или ресурса, которые предоставляют услуги. В данном случае, проблема может быть в самих «Одноклассниках».

Как исправить ошибку

Теперь, когда всевозможные причины возникновения подобной ошибки обозначены, рассмотрим способы устранения данной неисправности.

  • В первую очередь, пользователю настоятельно рекомендуется обновить (или установить, если отсутствует) антивирус. Прежде чем заниматься исправлением любой ошибки, следует тщательно проверить устройство на наличие вредоносных программ. Зачастую, именно они выступают родоначальниками любой ошибки и некорректной работы устройства.
  • Следующим шагом необходимо уточнить текущую версию браузера и флеш-плеера, которые предпочитает пользователь. В случае, если данные программы устарели, следует произвести обновление, пользуясь доверенными источниками.
  • Проблема может заключаться в том, что браузеру не удалось подключить плагин. В этом случае необходимо выполнить перезагрузку или обновление всех плагинов используемых браузером. Следует также проверить, не конфликтуют ли подключенные плагины между собой.
  • Не лишним будет очистить кэш браузера. В зависимости от используемого пользователем браузера, способ очистки может различаться. Но, в большинстве случаев сделать это можно в меню «Настройки».
  • Для исправления проблемы порой помогает очистка файла hosts. Искомый файл находится по адресу C:\WINDOWS\system32\drivers\etc. Открыть данный файл возможно с помощью любого текстового редактора. После открытия необходимо удалить все строки после 127. 00. 1 localhost.

ВНИМАНИЕ: Редактировать файл hosts следует только от имени администратора. В противном случае система не позволит сохранить произведенные изменения.