ZebroidФорумПубличный разделВопросыПлагин для постинга в telegra.ph, и канал telegram через api

Плагин для постинга в telegra.ph, и канал telegram через api

14 февраля 2025, 01:01
Зарегистрирован: 28 марта 2024, 14:06
Здравствуйте. Делаю плагины для постинга в тг, и телеграф через апи. В веб интерфейс научил постить, но хочу научить постить в api.
По разному пробовал, но создается ощущение, что зеброиду не хватает каких-то библиотек, или модулей, для отправки post запросов. Потому решил узнать у вас, есть ли они вообще в зеброиде? А то может я зря мучаюсь)

Комментарий отредактирован 1 раз(а). Последний раз редактировал green1987 14 февраля 2025, 01:02.
14 февраля 2025, 09:07
Зарегистрирован: 10 апреля 2012, 00:00
Нет, такого нет.

И что значит не хватает библиотек"? Кто вам запрещает установить любую доступную в инетрнете библиотеку и использовать её?

14 февраля 2025, 09:42
Зарегистрирован: 28 марта 2024, 14:06

admin в своем сообщении писал(а):Нет, такого нет.

И что значит не хватает библиотек"? Кто вам запрещает установить любую доступную в инетрнете библиотеку и использовать её?


Добрый день. В логе появляется ошибка [9:25:28] Компилятор: [Error] (25:3): Unknown identifier 'SendHttp'
[9:25:28] Строка с ошибкой: 25

А вот сама строка:
SendHttp('https://api.telegra.ph/createAccount', 'POST', Response);

Строка эта используется в процедуре получения токена:

procedure GetAccessToken;
begin
  AuthorName := GetVar('$AuthorName');
  if AuthorName = '' then
    AuthorName := 'zebroid';
    
  WriteToLog('Получаем новый токен...');
  Response := 'short_name=' + GetVar('$BotName') + '&author_name=' + AuthorName;
  SendHttp('https://api.telegra.ph/createAccount', 'POST', Response);
    
  Response := GetLastResponse;
  WriteToLog('Ответ API: ' + Response);
  
  // Извлекаем токен из ответа
  if Pos('"access_token":', Response) > 0 then
  begin
    Token := ExtractStr(Response, '"access_token":"', '",');
    WriteToLog('Получен новый токен: ' + Token);
    
    // Сохраняем токен в файл
    WriteFile('telegraph_token.txt', Token);
    WriteToLog('Токен сохранен в файл');
  end
  else
    WriteToLog('Ошибка: токен не найден в ответе API');
end;

Чем заменить это можно, что бы заработало?

14 февраля 2025, 09:50
Зарегистрирован: 28 марта 2024, 14:06
И ещё уточнить информацию хочу. Я делаю не как плагин, а как скрипт в конструкторе автопостинга. Возможно это влияет на результат.

14 февраля 2025, 10:47
Зарегистрирован: 28 марта 2024, 14:06

admin в своем сообщении писал(а):Нет, такого нет.

И что значит не хватает библиотек"? Кто вам запрещает установить любую доступную в инетрнете библиотеку и использовать её?


Только сейчас понял, что Вы говорите, что нет поддержки запросов.
В общем я решил использовать библиотеку synapse. Скачал её с оф. сайта, кинул в папку core, прописал вначале скрипта
uses
  synapse, synhttp; // Подключаем библиотеку Synapse
и опять получил ошибку. Видимо неправильно подключил, либо закинул не туда. Подскажите пожалуйста, как правильно?

15 февраля 2025, 14:12
Зарегистрирован: 10 апреля 2012, 00:00
Нет, Автопостинг — это совсем не тот инструмент, который подходит для решения вашей задачи. Вам нужно делать это именно как плагин и желательно, чтобы это был Python плагин. Тогда у вас будет возможность подключить любую доступную библиотеку. Я бы даже посоветовал вам поискать готовые решения, например это: github.com/python273/telegraph

10 марта 2025, 17:36
Зарегистрирован: 28 марта 2024, 14:06
Добрый день! Спасибо! Реализовал это на Python.
Столкнулся теперь с другой проблемой.
Нужно как-то реализовать публикацию материалов, учитывая сгенерированные автодаты.

Комментарий отредактирован 1 раз(а). Последний раз редактировал green1987 10 марта 2025, 17:36.
10 марта 2025, 17:51
Зарегистрирован: 28 марта 2024, 14:06
Ну то есть я рассчитывал запуск ежедневный по планировщику, и публикацию статей, которые должны публиковаться в день автозапуска.
Настроил снятие выделения статей, а вот настроить именно выделение статей, с сегодняшней датой публикации, не знаю как.
Или может неправильно понимаю, принцип? Может как-то
иначе действовать нужно?

11 марта 2025, 09:14
Зарегистрирован: 10 апреля 2012, 00:00
А не проще будет просто в скрипте делать обход всех постов, но публиковать только те, дата которых сегодняшняя?

11 марта 2025, 15:14
Зарегистрирован: 28 марта 2024, 14:06
Можно и так, наверное. А ещё можно отсортировать по датам, и публиковать по 1-2 статьи. Это конечно не столь точный вариант будет, но зато не придется дорабатывать плагин.