2012-06-27 22 views
13

मैं एक फेसबुक एप्लिकेशन पर काम कर रहा हूं जो प्रमाणीकरण के लिए फेसबुक ग्राफ एपीआई का उपयोग करता है, हाल ही में फेसबुक आईपीवी 6 में अपग्रेड किया गया है और मेरा नेटवर्क आईपीवी 6 का समर्थन नहीं करता है, इसलिए मेरी सभी कॉल रिटर्निंग शुरू हो गई है मेजबान पहुंचने योग्य त्रुटि है, मैंने खोज की फेसबुक कीड़े और पाया कि हम अभी भी कर्ल CURLOPT_IPRESOLVE का उपयोग कर आईपीवी 4 का उपयोग करने के लिए फेसबुक के अनुरोधों को मजबूर कर सकते हैं।PHP कर्ल CURLOPT_IPRESOLVE

अब जब मैं कर्ल का उपयोग कर फेसबुक ग्राफ एपीआई के अनुरोध भेजने के लिए कोशिश मैं नोटिस: अपरिभाषित निरंतर CURLOPT_IPRESOLVE का प्रयोग - ग्रहण 'CURLOPT_IPRESOLVE'

मैं कैसे मैं इस निरंतर या कैसे के लिए समर्थन सक्षम कर सकते हैं जानना चाहता हूँ क्या मैं php में IPv6 समर्थन अक्षम कर सकता हूं ताकि मैं आईपीवी 4 का उपयोग कर फेसबुक ग्राफ एपीआई को अनुरोध भेज सकूं।

मेरे कोड

$url = ("https://graph.facebook.com/me/access_token?tokrn"); 
     $c = curl_init(); 
     curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($c, CURLOPT_URL, $url); 
     curl_setopt($c, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); 
     $contents = curl_exec($c); 
     $err = curl_getinfo($c,CURLINFO_HTTP_CODE); 
     curl_close($c); 

धन्यवाद

+0

lol, किसी को सच में मुझे यहाँ से नफरत करता है, -1 मेरी हर सवाल पर, यह बच्चे रखना ... – TilalHusain

+1

आप इस प्रश्न पोस्ट करने के लिए बहुत बहुत धन्यवाद! यह मेरे टाइमआउट मुद्दों को हल किया। – Steven

उत्तर

12

चेक आप कर्ल संस्करण

CURLOPT_IPRESOLVE उपलब्ध है कर्ल 7.10.8

के बाद से

परीक्षण करने के लिए इस नमूना कोड का प्रयास करें है
<?php 

    $version = curl_version(); 

// These are the bitfields that can be used 
// to check for features in the curl build 
$bitfields = Array(
      'CURL_VERSION_IPV6', 
      'CURLOPT_IPRESOLVE' 
      ); 


foreach($bitfields as $feature) 
{ 
    echo $feature . ($version['features'] & constant($feature) ? ' matches' : ' does not match'); 
    echo PHP_EOL; 
} 
FYI करें

: http://gcov.php.net/PHP_5_3/lcov_html/curl/interface.c.gcov.php

+4

एफवाईआई, यह भी ध्यान रखना महत्वपूर्ण है कि CURLOPT_IPRESOLVE और संबंधित स्थिरांक केवल PHP 5.3 और नए में परिभाषित किए गए हैं। यदि आप 5.2 चला रहे हैं, तो ये स्थिरांक अभी तक पहुंच योग्य नहीं होंगे, भले ही आपका libcurl संस्करण इसका समर्थन करता है (7.10.8, @Venu पॉइंट आउट के रूप में)। इसके अतिरिक्त, भले ही आप स्थिरांक को मैन्युअल रूप से परिभाषित करते हैं ('परिभाषित करें (' CURLOPT_IPRESOLVE ', 113); परिभाषित करें (' CURL_IPRESOLVE_V4 ', 1);'), PHP इसे अनदेखा कर देगा, जैसा कि आप 'static int _php_curl_setopt()' स्रोत कोड वेनु लिंक में समारोह। – Joe