Задание Cron не будет запускать проверку подлинности вызова - PullRequest
0 голосов
/ 06 ноября 2018

Мне нужно, чтобы этот код запускался каждые 3 часа, чтобы сделать вызов аутентификации API, чтобы получить временный токен для использования для других вызовов API. Я храню его в отдельном php-файле и обновляю при необходимости

Работает в браузере, но не в работе cron. Все остальные мои рабочие места cron работают и форматируются одинаково. Чего мне не хватает?

* РЕДАКТИРОВАТЬ: вот мой вызов Cron -

/ usr / local / bin / php /home/mysite.com/getToken.php

<?php

    Token();

    function Token(){
        header("Access-Control-Allow-Origin: https://example.com");
        header("Access-Control-Allow-Headers: Access-Control-Allow-Origin, Access-Control-Allow-Headers, Access-Control-Allow-Methods, Origin, Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
        header("Access-Control-Allow-Methods: PUT, POST, GET, OPTIONS");
        header("Access-Control-Allow-Credentials: true");

        $params = array("Username" => "fuu", "Password" => "bar", "PrivateKey" => "123456789");
        $auth_url = 'https://example.com/api/Rest/authenticate';
        $ch = curl_init();
        $postData = http_build_query($params);
        curl_setopt($ch, CURLOPT_POSTFIELDS, "$postData");
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_URL, "$auth_url");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $data = curl_exec($ch);
        $token = $data;
        curl_close($ch);
        file_put_contents({$_SERVER['DOCUMENT_ROOT']} . "/Token.php", $token);
        echo $token;
    }   
?>

1 Ответ

0 голосов
/ 07 ноября 2018

Проблема в $_SERVER['DOCUMENT_ROOT'] - эта пустая при выполнении сценария PHP через оболочку.

Вещи, которые установлены и также содержат путь:

  ["PHP_SELF"]=>
  string(30) "/var/www/html/documentRoot.php"
  ["SCRIPT_NAME"]=>
  string(30) "/var/www/html/documentRoot.php"
  ["SCRIPT_FILENAME"]=>
  string(30) "/var/www/html/documentRoot.php"
  ["PATH_TRANSLATED"]=>
  string(30) "/var/www/html/documentRoot.php"
  ["DOCUMENT_ROOT"]=>
  string(0) ""

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...