我一直在努力让Google Calendar API与PHP一起使用,我甚至联系了我的主机(1和1)来解决问题,没有任何工作
我已经按照PHP Quickstart上的示例,尝试通过转到页面来运行它,它在命令行中运行它给了我一个错误。所以我登录了我的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.');
}
我被耽搁了......我已经将代码发送给朋友试用了,他得到了一个链接,可以返回我应该去授权的地方,但我和#39;我无法看到其中任何一个。
1和1的技术人员说
现在,如果您将查看错误,则错误会从&#34;解析错误&#34; to&#34; Uncaught exception&#39; Exception&#34;。看来这个应用程序将在服务器环境中运行,而不是在共享主机上运行。这是对您的包装的限制。您可能需要转到服务器包才能运行此API。
这是真的吗?我真的需要切换到服务器托管吗?有没有解决的办法?
我想要做的就是在Google日历和mySQL服务器之间实现双向同步。
答案 0 :(得分:3)
根据Google代码和说明,https://developers.google.com/google-apps/calendar/quickstart/php
首先,您尝试使用cmd
运行此操作。
转到start
键入cmd
,然后会出现黑屏,如下所示:
php yourfilename.php
,然后它会为您提供一个网址并询问验证码,您只需访问所述网址并允许Google获取密钥并在cmd中输入所述密钥。
您的代码已准备就绪。现在评论限制cli的相同代码,即:
if (php_sapi_name() != 'cli') {
throw new Exception('This application must be run on the command line.');
}
答案 1 :(得分:0)
我从我正在处理的项目中找到了您的帖子。您可以从命令行运行quickstart.php,然后为您提供一个粘贴到浏览器中以授权访问的链接。
获得授权访问权限后,您可以再次在命令行中运行该脚本,并显示即将发生的事件。
没有浏览器输出 - 这就是我要找的。 p>
我希望这会有所帮助。