2013-02-27 32 views
10

मैंने इन सभी चरणों का पालन किया।Google एक्सेस टोकन के साथ उपयोगकर्ता ईमेल कैसे प्राप्त करें?

https://developers.google.com/+/web/signin/

मैं ग्राहक आईडी और ग्राहक रहस्य है।

मुझे अब टोकन तक पहुंच मिली है, मैं एक्सेस टोकन के साथ उपयोगकर्ता प्रोफ़ाइल और ईमेल कैसे प्राप्त कर सकता हूं? और कैसे जांचें कि उपयोगकर्ता लॉग इन है या नहीं?

+0

आपको टोकन तक पहुंच कैसे प्राप्त होती है? – selvan

+0

@ कोंगा राजू आपको टोकन कैसे मिला, कृपया मुझे धन्यवाद बताएं धन्यवाद –

उत्तर

4

OAuth2 का उपयोग करके आप स्कोप पैरामीटर के माध्यम से अनुमतियों का अनुरोध कर सकते हैं इस

$accessToken = 'access token'; 
$userDetails = file_get_contents('https://www.googleapis.com/oauth2/v1/userinfo?access_token=' . $accessToken); 
$userData = json_decode($userDetails); 

if (!empty($userData)) { 

    $googleUserId = ''; 
    $googleEmail = ''; 
    $googleVerified = ''; 
    $googleName = ''; 
    $googleUserName = ''; 

    if (isset($userData->id)) { 
    $googleUserId = $userData->id; 
    } 
    if (isset($userData->email)) { 
    $googleEmail = $userData->email; 
    $googleEmailParts = explode("@", $googleEmail); 
    $googleUserName = $googleEmailParts[0]; 
    } 
    if (isset($userData->verified_email)) { 
    $googleVerified = $userData->verified_email; 
    } 
    if (isset($userData->name)) { 
    $googleName = $userData->name; 
    } 
} else { 

    echo "Not logged In"; 
} 
+0

एक और .. मैं साइन इन की जांच कैसे कर सकता हूं या ऑनलोड नहीं कर सकता। –

+0

@ कोंगाराजू, –

+0

@dino में साइन इन किया गया है या नहीं, यह जांचने के लिए authResult ['status'] ['sign_in'] का उपयोग करें, हम आपको यह टोकन कैसे प्राप्त कर सकते हैं कृपया मुझे अपनी टिप्पणियां साझा करें –

17

प्रयास करें। (Documentation।) मुझे लगता है कि आपके इच्छित स्कॉप्स https://www.googleapis.com/auth/userinfo.email और https://www.googleapis.com/auth/userinfo.profile हैं।

फिर, आपके पहुंच टोकन प्राप्त करने के बाद प्रोफ़ाइल जानकारी प्राप्त करना एक साधारण बात है। (मुझे लगता है कि आप एक पहुँच टोकन के लिए लौट आए प्राधिकरण कोड भुनाने के लिए कर लिया है?) बस https://www.googleapis.com/oauth2/v1/userinfo?access_token= करने के लिए एक बात का अनुरोध {accessToken} कौन-सी प्रोफ़ाइल डेटा की एक JSON सारणी, ईमेल सहित लौटाता हो:

{ 
    "id": "00000000000000", 
    "email": "[email protected]", 
    "verified_email": true, 
    "name": "Fred Example", 
    "given_name": "Fred", 
    "family_name": "Example", 
    "picture": "https://lh5.googleusercontent.com/-2Sv-4bBMLLA/AAAAAAAAAAI/AAAAAAAAABo/bEG4kI2mG0I/photo.jpg", 
    "gender": "male", 
    "locale": "en-US" 
} 

कोई गारंटी है, लेकिन इस प्रयास करें:

$url = "https://www.googleapis.com/oauth2/v1/userinfo"; 
$request = apiClient::$io->makeRequest($client->sign(new apiHttpRequest($url, 'GET'))); 

if ((int)$request->getResponseHttpCode() == 200) { 
    $response = $request->getResponseBody(); 
    $decodedResponse = json_decode($response, true); 
    //process user info 
    } else { 
    $response = $request->getResponseBody(); 
    $decodedResponse = json_decode($response, true); 
    if ($decodedResponse != $response && $decodedResponse != null && $decodedResponse['error']) { 
     $response = $decodedResponse['error']; 
    } 
    } 
} 
+0

लॉगिन स्थिति की जांच कैसे करें –

+0

यदि आपके पास पहुंच है टोकन तो इसका मतलब है कि आप – Vineet1982

+0

में लॉग इन हैं, मेरा मतलब है कि जब मुझे एक्सेस टोकन मिलेगा, तो जब मैं लॉगिन पर क्लिक करता हूं या जब लॉगिन बटन के साथ पेज लोड होता है तो मैं टोकन तक पहुंच सकता हूं –

1

आप बस अपनी scope में इस लाइन को जोड़ने खोलें अपने Application.cfc और फिर इस कोड

 <cfset request.oauthSettings = 
      {scope = "https://www.googleapis.com/auth/userinfo.email+https://www.googleapis.com/auth/userinfo.profile", 
            client_id = "Your-id", 
            client_secret = "your-secret", 
            redirect_uri = "redirect-page", 
            state = "optional"} /> 
जोड़ने 10

अब तुम समारोह से ईमेल है कि आप इस

<cfscript>    
     public function getProfile(accesstoken) { 

      var h = new com.adobe.coldfusion.http(); 
      h.setURL("https://www.googleapis.com/oauth2/v1/userinfo"); 
      h.setMethod("get"); 
      h.addParam(type="header",name="Authorization",value="OAuth #accesstoken#"); 
      h.addParam(type="header",name="GData-Version",value="3"); 
      h.setResolveURL(true); 
      var result = h.send().getPrefix(); 
      return deserializeJSON(result.filecontent.toString()); 
     }  
    </cfscript> 

      <cfoutput> 
      <cfset show = getProfile(session.ga_accessToken)> 
      <cfdump var="#show#"> 
      </cfoutput> 

आशा इस इस हल करने के लिए लोगों के कई मदद कर सकते हैं की तरह कॉल कर सकते हैं मिल सकता है। :)

संबंधित मुद्दे