Прежде всего, cronjob ничего не делает сам, как вы сказали "сделать запрос". это точно сделать "запуск сценария". Теперь для вас есть способы сделать это, но лучший способ для такой работы - cron. потому что он работает под ядром и полностью надежен и стабилен.
во-вторых, что вы подразумеваете под "хранится в моей системе, а не в файле cronjob"?
если вы имеете в виду, что вы храните свой токен доступа в своем коде, и теперь вы должны сохранить его в файле, потому что cron запускает скрипт, и этот скрипт сохраняет токен где-то, и это небезопасно, поэтому просто сделайте это:
создайте скрипт, который записывает файл только 0 или 1. каждые 3 часа этот скрипт запускается cron и меняйте 0 на 1. вы код всегда проверяете этот файл, если значение равно 1, то токен истек, и вы генерируете новый токен перед созданием вызов нового API и в конце вы снова меняете этот файл на 0. это просто простой способ.
но имейте в виду, что это не лучшая практика, и если вы можете ПРОСТО РЕАЛИЗОВАТЬ ОБРАТНЫЙ ЖЕЛЕЗНЫЙ МЕТОД с другой стороны.