Google Fusion Tables API导致错误请求

时间:2014-07-26 22:56:16

标签: php magento google-fusion-tables

我正在使用Google Fusion Tables API从Fusion Table获取行(我打算更新这些行,但我试图保持简单,直到我得到正确的连接)。该表在其设置中设置为“不公开”和“可下载”。我有API密钥,因为当我在浏览器中加载它时请求正常,但是当我执行我的代码时,我收到来自Google的错误请求响应。以下是我正在使用的代码:

注意:我目前不使用Oauth来验证请求。该文档指出,如果您使用GET字符串和sql语句来操作数据,则不需要这样做。下面的密钥应该适用于任何来源,但我打算切换到服务器密钥以确保安全。

$sellerlist = Mage::getModel('marketplace/userprofile')->getCollection()->addFieldToFilter('partnerstatus',array('eq'=>'Seller'))->addFieldToFilter('wantpartner',array('eq'=>1)); 
foreach($sellerlist as $seller){
            $profileurl = Mage::getUrl()."marketplace/seller/profile/".$seller->getProfileurl();
            if($seller->getshoptitle()!=''){ $shoptitle = $seller->getshoptitle();}
             else {  $shoptitle = $seller->getprofileurl(); }
            $logo=$seller->getlogopic()==''?"noimage.png":$seller->getlogopic();
            $logo=Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).'avatar/'.$logo;
            $latitude = $seller->getlatitude();
            $longitude = $seller->getlongitude();
            if ($latitude !== ''){


                $req = curl_init();
                curl_setopt($req, CURLOPT_URL, urlencode("https://www.googleapis.com/fusiontables/v1/query?sql=SELECT ROWID FROM 12rLP9qGYclz-kkDa_y_NJ1Meh81EZK_5o7yp38sk WHERE shoptitle='".$shoptitle."'&key=AIzaSyAqt5biL_4nsZ25ZZC1RaeClssOIhXkn_k"));
                curl_setopt($req, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($req, CURLOPT_HEADER, 0);
                curl_setopt($req, CURLOPT_FRESH_CONNECT, true);


                $responseJSON = curl_exec($req);
                $resp = json_decode($responseJSON, true);
                curl_close($req);

                print_r($responseJSON);


            }

}

1 个答案:

答案 0 :(得分:0)

不要对完整的网址进行编码,您只能对GET参数进行编码(http_build_query将是一个很好的选择):

curl_setopt($req, 
        CURLOPT_URL, 
        'https://www.googleapis.com/fusiontables/v1/query?'
          .http_build_query(array('sql'=>
                                    "SELECT ROWID 
                                      FROM 12rLP9qGYclz-kkDa_y_NJ1Meh81EZK_5o7yp38sk 
                                      WHERE shoptitle='{$shoptitle}'",
                                  'key'=>'AIzaSyAqt5biL_4nsZ25ZZC1RaeClssOIhXkn_k')));