GAE上的Google API PHP客户端库


Google API PHP Client Library on GAE

我正在尝试实现一个按钮,当点击该按钮时,将把一个通用文件上传到谷歌驱动器。以下代码在我的本地机器上运行良好(使用谷歌的SDK进行本地开发),但当上传到谷歌应用程序引擎时,它无法通过slowtest.php中的require_one语句

HTML文件:

<head>
    ...
    <script src="js/data.js"></script>
    ...
</head>
<body>
    <div class="container">
        <h2>Data Page</h2>
        <p>Press the button to upload a file.</p>
        <button onclick="upload()" style="margin-bottom: 5px;">Upload</button>
        <p>Return: <span id="uploadedFiles"></span></p>
    </div>
</body>

此处调用upload():

function upload() {
    xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function()
    {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
        {
            document.getElementById("uploadedFiles").innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET", "slowtest.php", true);
    xmlhttp.send();
}

最后,php文件:

<?php
require_once 'google-api-php-client/src/Google_Client.php';
echo 'success!';
?>

如果我删除"require_one"行,则"success"将添加到网页的段落行中。然而,当它没有被注释掉时,单击按钮时不会发生任何事情。

页面上没有错误输出,但会向控制台输出500错误。

加载资源失败:服务器响应状态为500(内部服务器错误)

我在命令行上运行了相同的代码,它也能工作。如果有人有任何建议,我们将不胜感激。

这里有一篇关于让PHP API客户端使用App Engine的详细文章,据我所知,这仍然是准确和正确的。

我建议遵循这篇博客文章中的说明,如果仍然不起作用,请报告。

此外,绝对不要在app.yaml文件的api客户端目录中放置任何路径,如上所述。

好的,我发现了问题,而且很简单。我把googleapi php客户端库称为static_dir,但没有一个文件是静态的。

使用这个问题的代码有助于有效地解决这个问题:

-url:/google-api-php-client/(.?)/(.脚本:谷歌api php客户端/''3/''2/''1.php

编辑:请参阅下面IanGSY的评论。您根本不需要在app.yaml.

中提及google-api.php客户端库