【发布时间】:2021-01-09 00:09:51
【问题描述】:
我的 API 调用检索了将数据提取到我的站点所需的信息
但是,API 调用需要每 24 小时调用一次,但我不能使用 cron
有没有人知道我可以如何使用 PHP 或 JS 做到这一点?
这是我的(简化的)电话:
$postdata = http_build_query(
array(
'username' => 'user',
'password'=>'pass'
));
/* API URL */
$url = ' *my_api_url_here* ';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
echo json_encode($result);
curl_close($ch);
【问题讨论】:
-
什么消耗
echo json_encode($result);?为什么它需要每 24 小时调用一次,它不存储或缓存任何东西,为什么你没有 cron,还有在线的可以向你的站点发出请求。您甚至可以使用 while 循环,但考虑到您没有 cron 很可能您将被限制为 30 秒的执行时间。是的,js 也可以通过 ajax 执行此操作,但您需要用户访问该站点。有没有想过换主机? -
@LawrenceCherone 我无法更改主机,这是针对拥有自己主机的客户。 API 调用需要每 24 小时向我发送一个每 24 小时更改一次的令牌。我宁愿用 cron 来做,但不幸的是我没有那个选项,所以我正在寻找替代解决方案。
-
情节变厚了,为什么不在提供令牌的服务器上放一些代码(受密码保护),然后从您的站点获取令牌,而不是尝试从他们的 api 中将其发布到您的 api,当然至少有一个你的服务器有 cron
-
@LawrenceCherone API 生成令牌,我必须调用 API 来获取令牌(每 24 小时)才能使系统工作,所以目前我上面的 PHP 工作但我必须去 PHP文件并手动刷新以获得不太理想的令牌...我认为我不能在服务器上进行太多更改 - 我只有 FTP 访问权限
-
您需要一些应用程序每 24 小时或其他间隔启动一次您的 php 代码,然后检查是否是调用 API 的时间。如果你不能使用 cron 或类似的,那么你需要有一个 24x7 运行的 PHP 进程,其中一些
while(true) { ... sleep(...);}不是一个好的选择,但可以工作。
标签: javascript php jquery api curl