Суть такая: пишу небольшой корпоративный SMM-planner.
Рассылки идут на ВК, ОК, Вайбер.
Сами рассылки работают везде, все ок.
Однако, возникла проблема с отложенными по времени публикациями.
Используя
timestamp в секундах в ВК все хорошо работает с помощью поля
'publish_date' .
В ОК в документации есть поля:
'publishAt' => '2023-05-01T09:40:00+03:00',
'publishAtMs' => $publish_date * 1000,
Однако публикация срабатывает в момент отработки скрипта, а эти поля (*примечание: использую одно из них, а не оба сразу) игнорируются. Пробовал ставить и на 4 суток вперед, чтобы не накосячить с таймзонами, однако ничего не работает. Полный игнор этих полей.
В вайбере в документации я и вовсе не нашел, как делать отложенную публикацию ( публиковать необходимо на
канал, а не в бота).
Вопрос: Как решить эти две проблемы, с
ОК и
ВАЙБЕРОМ, подскажите?
P.S. Как я уже сказал, все публикуется хорошо, все работает, кроме отложенных публикаций. Все необходимые права и т.п. есть.
Пользуясь сайтом
https://www.cy-pr.com/tools/time/#refresh , вручную получаю значения в секундах
timestamp .
Например, значение
1682923200 соответствует дате и времени:
GMT: Mon, 01 May 2023 06:40:00 GMT
Ваша временная зона: 01.05.2023, 09:40:00
В
ВК все корректно работает, публикация откладывается на указанную дату и время. ( 10-значное число, в секундах ).
В
ОК в документации указано, что поле
publishAtMs должно быть указано в мс. Так и делаю, умножая на * 1000. Однако, как я сказал выше, происходит полный игнор этого поля и публикация происходит в момент выполнения скрипта. Это
ПЕРВАЯ проблема.
В
Viber вовсе не нашел, как откладывать публикацию на
КАНАЛ. Это
ВТОРАЯ проблема.
Вот эти две проблемы и прошу Вас помочь мне разрешить:
отложенная публикация в ОК и в
Viber на канал.
P.P.S: Экспериментировал с таймзонами, 10-значными (сек) значениями и с 13-значными (мс) значениями. В тех. поддержку писал - не отвечают. Возможно, что-то изменилось и иначе поля теперь называются. Или же, возможно, по-другому
timestamp формировать нужно?? Уже совсем не знаю, что делать. Уповаю лишь на вашу помощь! :)
Прилагаю фрагмент PHP с POST запросом (открытые данные я изменил; напомню - код работает корректно (кроме отложенных публикаций)):
$publish_date = 1682923200; // 01.05.2023, 09:40:00
ОК
$paramsArray = [
'application_key'=> $application_key,
'access_token'=> $user['access_token'],
'type'=> 'USER',
'attachment'=> json_encode($media),
'format' => 'json',
// 'create_date' => 1682923200, // где-то в интернете встретил это поле, тоже пробовал. Не работает
// 'publishAt' => '2023-05-01T09:40:00+03:00',
'publishAtMs' => $publish_date * 1000,
'method' => 'mediatopic.post',
];
Viber
$postDetails = array(
"auth_token" => $accessToken,
"from" => 'LESjOs/T7/bmZznrA==',
"type" => "picture",
"text" => $message,
"media" => "https://lux.ru/tmp/SMM-plaNNer/test/img/Cat.jpg",
); // в Viber'е вовсе не нашел, какое поле необходимо передавать