2012-04-27 14 views
5

लौटता है मैं ट्विटर प्रमाणीकरण पर काम कर रहा हूं, जब तक मैं getAccessToken पर पहुंचता हूं तब तक सबकुछ ठीक से काम करता है जो Array ([ ] =>) देता है।ट्विटर OAUTH एक रिक्त सरणी

मैंने क्या किया:

  1. प्रथम चरण:

    $connection = new TwitterOAuth('xxxxxxxx','xxxxxxxx'); 
    
    $temporary_credentials = $connection->getRequestToken('http://example.com/profile.php?passurl=1'); 
    
    $redirect_url = $connection->getAuthorizeURL($temporary_credentials); 
    
    $_COOKIE['oauth_token'] = $temporary_credentials['oauth_token']; 
    
    $_COOKIE['oauth_token_secret'] = $temporary_credentials['oauth_token_secret']; 
    
    header("Location: $redirect_url"); 
    
  2. दूसरे चरण (यह वह जगह है जहाँ मैं समस्या का सामना)

    $connection = 
         new TwitterOAuth(
           'xxxxxxxxxx', 
           'xxxxxxxxxx', 
           $_COOKIE['oauth_token'], 
           $_COOKIE['oauth_token_secret'] 
           ); 
    $token_credentials = $connection->getAccessToken(); 
    

मैं इरादा $token_credentials मानों की बचत Array ([ ] =>)

क्या मैं सही नहीं मिल रहा है: डेटाबेस में लेकिन यह एक खाली सरणी देता है?

+2

कृपया अगली बार पोस्ट करने से पहले अपने कोड इंडेंट करने के लिए प्रयास करते हैं, यह पूरी तरह से पढ़ने योग्य नहीं था! – m09

+0

संपादन के लिए धन्यवाद! –

+0

'twitteroauth.php' में' var_dump ($ प्रतिक्रिया) जोड़ें, '' http' फ़ंक्शन के अंत में। यह ट्विटर से लौटा कच्चा जवाब होगा। क्या यह एक त्रुटि है या एक टोकन का उपयोग है? स्ट्रिंग (147) "oauth_token = xxxxstringxxxx और oauth_token_secret = xxxxstringxxxx और oauth_callback_con अंतिम रूप = सच": – abraham

उत्तर

3

आप getAccessToken विधि "oauth_verifier" गुजर रहे हैं? नमूना कोड में आप दे रहे हैं, आप इसे नहीं कर रहे हैं। इस चित्र पर एक नजर डालें, भाग डी

OAuth Diagram

मैंने पहले भी twitteroauth का इस्तेमाल किया है और मैं इसे इस तरह कर रही याद पर विशेष रूप से। (दूसरा fase शुरू करने)

$twitterOauth = new TwitterOAuth($AppId, $twSecret, $_COOKIE['oauth_token'], $_COOKIE['oauth_token_secret']); 
$twToken = $twitterOauth->getAccessToken($_REQUEST['oauth_verifier']); 

$newTwitterOauth = new TwitterOAuth($AppId, $twSecret, $twToken['oauth_token'], $twToken['oauth_token_secret']); 
$response = (array) $newTwitterOauth->get('account/verify_credentials'); 
var_dump($response); 

कुछ सुझाव मैं हालांकि करना होगा रहे हैं:

  • इसके बजाय एक कुकी में उस जानकारी को stoing की, मैं दृढ़ता से आप काम करने के लिए सत्र का उपयोग सुझाव देते हैं।
  • आप कुकीज़ का उपयोग करने पर जोर देते हैं, तो setcookie समारोह का उपयोग करें।
+0

हाँ, आपने दो मुद्दों को मारा: 1. मैं कुकी को सही तरीके से सेट नहीं कर रहा था। 2. मैं getAccessToken पाने के लिए oauth _verifier पास नहीं कर रहा था। –

0

कहाँ से अपने TwitterOAuth वर्ग मिल रहा है? क्या यह एक मानक वर्ग है? या आपने इसे स्वयं लिखा है? मैं वर्ग को स्वयं डिबग करने और वर्ग कार्यों में अधिक वर्बोज आउटपुट डालने का प्रयास करूंगा।

+0

का उपयोग करके सहायता करें: https://github.com/abraham/twitteroauth ... कृपया किसी भी फिक्स का सुझाव दें। धन्यवाद –

+0

उस परियोजना के लिए जिथब पर एक प्रश्न सबमिट करने का प्रयास करें। आपको कस्टम प्रतिक्रिया मिल सकती है, क्योंकि यह एक कस्टम क्लास है। –

+0

कोई अन्य उपलब्ध वर्ग है जिसका उपयोग कोई भी कर सकता है। मुझे वास्तव में यह काम करने की ज़रूरत है! arghh !!! –

0

कारण है कि आप कुकीज़ का उपयोग कर रहे हैं? कुकीज़ का उपयोग कर यह एक संभावित खतरा है क्योंकि क्लाइंट की तरफ जमा हो जाती है, बजाय

एक और सवाल सत्र का उपयोग करें: तेह $redirect_url में यदि u $_COOKIE['oauth_token'] और एक दूसरे के print_r बनाने, खाली r?

इम पूछ यह क्योंकि अगर यू कुछ ऐड-ऑन (फ़ायरफ़ॉक्स में webdeveloper की तरह) द्वारा या ब्राउज़र कॉन्फ़िगरेशन में कुकीज़ को निष्क्रिय। हो सकता है कि आप खाली मूल्यों का उपयोग $_COOKIE['oauth_token'], और $_COOKIE['oauth_token_secret'] पर कर रहे हैं।

+0

से कक्षा निकालने में सक्षम नहीं हूं, मुझे साइट पर सत्र सेट करने में समस्याएं आ रही हैं, इसलिए अस्थायी रूप से परीक्षण के लिए अस्थायी रूप से कुकीज का उपयोग कर रहा हूं जो वास्तव में सही मान रखती हैं। –