我一直在尝试让谷歌日历API与PHP一起工作,我什至联系了我的主机(1and1(来解决问题,没有任何工作
我遵循了 PHP 快速入门中的示例,尝试通过转到页面来运行它,它给了我在命令行中运行它的错误。 所以我登录了我的SSH,导航到该文件并运行命令php5.4 CRON-temp.php
. 现在,我得到同样的错误:
<b>Fatal error</b>: Uncaught exception 'Exception' with message 'This application must be
run on the command line.' in /homepages/41/d159654153/htdocs/mysite
/admin/php/CRON-temp.php:16
Stack trace:
#0 {main}
thrown in <b>/homepages/41/d159654153/htdocs/mysite/
admin/php/CRON-temp.php</b> on line <b>16</b><br />
所以,我已经在命令行中运行了它,但它仍然告诉我在那里运行它。 抛出错误的代码来自:
if (php_sapi_name() != 'cli') {
throw new Exception('This application must be run on the command line.');
}
我被耽搁在这里... 我已经将代码发送给朋友试用,他得到了一个链接,可以返回我应该去授权的地方,但我看不到任何内容。
1and1的技术人员说
现在,如果您查看错误,错误将从"解析错误"更改为"未捕获的异常'异常'异常"。此应用程序似乎将在服务器环境中运行,而不是在共享主机上运行。这是对您拥有的软件包的限制。可能需要转到服务器包才能运行此 API。
真的是这样吗? 我真的需要切换到服务器托管吗? 有没有办法解决这个问题?
我想做的是在谷歌日历和mySQL服务器之间进行2路同步。
根据谷歌代码和说明,即 https://developers.google.com/google-apps/calendar/quickstart/php首先,您尝试使用 cmd
运行它。
转到start
键入cmd
然后黑屏将在此处显示键入:
php yourfilename.php
,然后它会为您提供一个 URL 并要求您提供验证码,您只需访问所述 URL 并允许 Google 和 get 密钥并在 cmd 中输入所述密钥。
您的代码已准备就绪,可供使用。现在注释限制 cli 的相同代码,即:
if (php_sapi_name() != 'cli') {
throw new Exception('This application must be run on the command line.');
}
我从我目前正在从事的一个项目中找到了你的帖子。可以从命令行运行快速入门.php然后提供一个链接,用于粘贴到浏览器中以授权访问。
获得授权访问权限后,您可以在命令行中再次运行脚本,它会显示即将发生的事件。
没有浏览器输出 - 这就是我正在寻找的。
我希望这有所帮助。