用PHP编写的Zomato API在Google App Engine中不起作用

问题描述 投票:1回答:1

使用Zomato API,我编写了一个简单的PHP代码来获取搜索查询披萨的JSON数据。但是由于某种原因,当我将其推送到Google App Engine时它不起作用。

我已经尝试使用xampp在本地主机中运行PHP代码,并且可以正常工作。但是,当我在Google云中运行代码时,它显示了一个空页面,没有错误消息。

这是我要在Google App Engine上运行的PHP代码

  <?php
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://developers.zomato.com/api/v2.1/search?q=pizza&start=0&count=10");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
    $headers = array(
      "Accept: application/json",
      "User-Key: f0baf53bd8c31d3c625e9d9c0d379379"
      );
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    $result = curl_exec($ch);
    if (curl_errno($ch)) {
        echo 'Error:' . curl_error($ch);
    }
    curl_close ($ch);
    echo "<pre>"; 
    print_r($result); 
    echo "</pre>";
    ?>

我为将代码推送到Google云平台而编写的app.yaml

runtime: php55
api_version: 1

handlers:
- url: /
  script: index.php

我现在很迷茫,希望有人可以给我一些有关此问题的见解

编辑:感谢JohnHanley在下面的评论,我发现Google App Engine控制台显示以下错误消息:“ PHP致命错误:在/ base / data / home / apps / f〜cloud-assignment中调用未定义的函数curl_init() -2-254823 / 20191005t035406.421500489485193“。

我显然已经在错误消息中进行了搜索,发现默认情况下,Google App Engine显然无法识别curl_init()函数,显然我需要通过添加php.ini文件并在php中写几行代码来启用它.ini文件,然后再将其推送到云。抱歉,我还很陌生,有人可以告诉我如何?

php google-app-engine php-curl app.yaml zomato-api
1个回答
2
投票

感谢John Hanley的评论和一点点的搜寻,我发现了这个堆栈溢出帖子:app.yaml file mistake : Call to undefined function curl_init(),它解决了我的问题。

显然,默认情况下,cURL扩展名Google App Engine被禁用,因此错误消息说curl_init()函数无法识别,并且要激活它,需要创建php.ini,并在其中添加“ google_app_engine.enable_curl_lite = 1”行,将其添加到包含app.yaml文件的文件夹中,然后再将其推送到云中。

© www.soinside.com 2019 - 2024. All rights reserved.