2012-10-25 19 views
20

के साथ यूआरएल शॉर्टनर मेरा कोड नीचे है। यूआरएल शॉर्टिंग सेवा काम करती है, लेकिन जब मैं अपना $POST डालता हूं तो ऐसा नहीं होता है। क्या किसी को पता है कि कोड को देखने के लिए इसे कैसे ठीक किया जाए?Google एपीआई - PHP

// This is the URL you want to shorten 
$longUrl = 'http://www.mysite.com/XXXXX/XX/$_POST['qrname']'; 

// Get API key from : http://code.google.com/apis/console/ 
$apiKey = 'MyAPIKey'; 

$postData = array('longUrl' => $longUrl, 'key' => $apiKey); 
$jsonData = json_encode($postData); 

$curlObj = curl_init(); 

curl_setopt($curlObj, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/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')); 
curl_setopt($curlObj, CURLOPT_POST, 1); 
curl_setopt($curlObj, CURLOPT_POSTFIELDS, $jsonData); 

$response = curl_exec($curlObj); 

// Change the response json string to object 
$json = json_decode($response); 

curl_close($curlObj); 

echo 'Shortened URL is: '.$json->id; 
+0

'छोटा यूआरएल है:'। $ Json-> id; जांच के बाद। ! यह काम करता हैं । –

+1

मुझे नहीं पता कि आपको एपीआई दस्तावेज़ में यह कोड कहां मिल रहा है, लेकिन धन्यवाद! – Macbernie

उत्तर

11

रूप

नीचे

$longUrl = 'http://www.mysite.com/XXXXX/XX/'.$_POST['qrname'];

ऊपर काम करेंगे प्रयास करें।

+8

आपकी समस्या curl के बारे में कुछ भी नहीं है, यह PHP में चर और स्ट्रिंग को जोड़ने के बारे में है, http://php.net/manual/de/language.types.string.php –

+0

देखें मुझे पता है कि मैं ओपी के PHP कोड का उपयोग क्यों नहीं कर सकता और यूआरएल छोटा करें? यह मुझे त्रुटि संदेश 'डोमेन "लौटाता है:" उपयोग लिमिट "," कारण ":" दैनिक लिमिट एक्स्प्लेड अनन्रेग "," संदेश ":" अनधिकृत उपयोग के लिए दैनिक सीमा पार हो गई। निरंतर उपयोग के लिए साइनअप की आवश्यकता होती है। "'? मैं अपने एचटीपी रेफरर, कोटा को देखता हूं, सबकुछ अच्छा दिखता है .... – Mavichow

5

आप सिंगल कोट्स के बीच php चर पारित कर रहे हैं, इसलिए इसे पार्स नहीं किया जाएगा। तरह

$longUrl = "http://www.mysite.com/XXXXX/XX/$_POST['qrname']"; 

या इस

$longUrl = 'http://www.mysite.com/XXXXX/XX/'.$_POST['qrname']; 
+2

मैं हैकबलवेब पर यह जवाब पसंद करता हूं क्योंकि यह समस्या को हल नहीं करता है, बल्कि ओपी को भी बताता है, *** क्यों ***! –

1

तरह concatinate दोहरे उद्धरण चिह्नों के बीच इसे पारित टिप्पणी करने के लिए अभी तक पर्याप्त प्रतिष्ठा अंक नहीं है, लेकिन मैं इस लाइन को बदल कर ठीक काम कर रहा है:

echo 'Shortened URL is: '.$json->id; 

साथ:

$shortLink = get_object_vars($json); 
echo "Shortened URL is: ".$shortLink['id']; 

यह सिर्फ मेरी PHP स्थापना हो सकती है, लेकिन मूल रेखा ने मेरे लिए 500 आंतरिक त्रुटि फेंक दी है।

6

आप एक महत्वपूर्ण है, लेकिन आप इसे सही ढंग से उपयोग नहीं कर रहे

आप यूआरएल से संलग्न करना चाहिए, बाद में महत्वपूर्ण नहीं भेजते हैं

https://www.googleapis.com/urlshortener/v1/url?key='.$apiKey 

कृपया जांच करें https://developers.google.com/url-shortener/v1/url/insert

+4

यह मेरे लिए हल हो गया, कुछ मौजूदा दस्तावेज पुराना है। – MarcF

6
$longUrl = "http://www.xxxxxxx.com"; 
    $postData = array('longUrl' => $longUrl); 
    $jsonData = json_encode($postData); 

    //4 
    $curlObj = curl_init(); 
    curl_setopt($curlObj, CURLOPT_URL, 'https://www.googleapis.com/urlshortener/v1/url?key=yourappkey'); 
    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); 

    //5 
    $response = curl_exec($curlObj); 

    $json = json_decode($response); 
//  echo "<pre>"; 
// print_r($json);exit; 
    //6 
    curl_close($curlObj); 

    //7 
    if(isset($json->error)){ 
     echo $json->error->message; 
    }else{ 
     echo $json->id; 
    } 
0

इस कोड के साथ प्रयास करें। मैं मेरे लिए काम कर रहा हूँ

$api_key = 'YOUR_KEY'; 
$request_data = array(
    'longUrl' => 'YOUR_LONG_URL' 
); 

$curl_obj = curl_init(sprintf('%s/url?key=%s', 'https://www.googleapis.com/urlshortener/v1', $api_key)); 
curl_setopt($curl_obj, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl_obj, CURLOPT_POST, true); 
curl_setopt($curl_obj, CURLOPT_HTTPHEADER, array('Content-type: application/json')); 
curl_setopt($curl_obj, CURLOPT_POSTFIELDS, json_encode($request_data)); 
curl_setopt($curl_obj, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($curl_obj, CURLOPT_SSL_VERIFYHOST, false); 

$response = curl_exec($curl_obj); 
$json = json_decode($response); 
curl_close($curl_obj); 

var_dump($json); 
die(); 
संबंधित मुद्दे