【发布时间】:2018-11-07 22:31:13
【问题描述】:
我需要此代码每 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;
}
?>
【问题讨论】:
-
值得在这篇文章中概述您的 cronjob 命令,以便所有人都可以看到您的请求以及可能影响您预期输出的任何可能的权限问题。
-
Ergo,这“可能”是由于文件权限或其他一些 cron 问题,但除了执行 obv 在浏览器中工作的 php 脚本之外,我们看不到发生了什么。
-
谢谢,刚刚添加了