Google API - URL Shortener with PHP

后端 未结 8 2107
爱一瞬间的悲伤
爱一瞬间的悲伤 2021-02-02 12:24

My code is below. The URL shortening service works, but it doesn\'t when I insert my $POST. Does anyone know how to fix this my looking at the code?



        
8条回答
  •  自闭症患者
    2021-02-02 12:52

     $longUrl, 'key' => $apiKey);
            $curlObj = curl_init();
            $jsonData = json_encode($postData);
            curl_setopt($curlObj, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url?key='.$postData['key']);
            curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
            curl_setopt($curlObj, CURLOPT_HEADER, 0);
            curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
            curl_setopt($curlObj, CURLOPT_POST, 1);
            curl_setopt($curlObj, CURLOPT_POSTFIELDS, $jsonData);
            $response = curl_exec($curlObj);
            $json = json_decode($response);
            curl_close($curlObj);
            if(isset($json->error) || $json == null){
                 return $longUrl; // retrun same url in case of error or null response
            }else{
                return $json->id; // return shorted url
            }
        }
    // use this function here
    $longUrl = 'https://www.w3schools.com/';
    echo short_url($longUrl); // print short url
    
    // If you want to return short url to long url use below function
    function long_url($shortUrl){
            $apiKey = '***********'; // put your GOOGLE API SHORTENING Key
            $params = array('shortUrl' => $shortUrl, 'key' => $apiKey,'projection' => "ANALYTICS_CLICKS");
            $final_url = 'https://www.googleapis.com/urlshortener/v1/url?'.http_build_query($params);
            $curlObj = curl_init($final_url);
            curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
            curl_setopt($curlObj, CURLOPT_HEADER, 0);
            curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
            $response = curl_exec($curlObj);
            $json = json_decode($response);
            curl_close($curlObj);
            if(isset($json->error) || $json == null){
                return $shortUrl;
            }else{
                return $json->longUrl;
            }
        }
    //Function Use here
    echo "
    "; // For next line $shortUrl = ''; // put the short url generated from above function echo long_url($shortUrl); // get long url ?>

提交回复
热议问题