दिलचस्प पोस्ट
सी ++ 14 में क्यों लैम्ब्डास पर std :: bind का उपयोग करें? Django: छवि url से ImageField में छवि जोड़ें एकाधिक जावास्क्रिप्ट फाइलों को एक JS फ़ाइल में जोड़ना क्या हम इस प्रमुख-उन्मुख एक्सेस-सुरक्षा पैटर्न की पुन: प्रयोज्यता बढ़ा सकते हैं? Android पर एक SOAP वेब सेवा को कैसे कॉल करें सी # त्रुटि: अभिभावक में कोई ऐसा कन्स्ट्रक्टर नहीं होता है, जो 0 तर्कों को लेता है मल्टीप्रोसेसिंग: कक्षा में परिभाषित फ़ंक्शन पर पूल.मैप का उपयोग कैसे करें? पायथन कक्षाओं में हम __init__ का उपयोग क्यों करते हैं? पाइप के साथ "टी" का उपयोग करते समय मैं एक फ़ाइल में stderr कैसे लिख सकता हूँ? फ़ायरबसे पर एसकेएल "जैसी" ऑपरेशन कैसे करें? संलग्न करने के बाद जावास्क्रिप्ट में आग लगती नहीं है एक फ्लेक्स आइटम भाई-बहनों के लिए ऊंची सीमा निर्धारित करता है Ctrl-Space दबाए बिना ईक्लिप्स में Ctrl-Space रेल 3: रैंडम रिकॉर्ड प्राप्त करें इसे दिखाए जाने के बाद मैं कैसे सचेत बॉक्स को स्वत: लटका सकता हूं?

Google API के माध्यम से उपयोगकर्ता जानकारी प्राप्त करें

क्या Google एपीआई के माध्यम से उपयोगकर्ता के प्रोफाइल से जानकारी प्राप्त करना संभव है? यदि यह संभव है, तो मुझे किस API का उपयोग करना चाहिए?

मैं ऐसी जानकारी में दिलचस्प हूँ:

  • उपयोगकर्ता प्रोफ़ाइल में यूआरएल (जैसे https://profiles.google.com/115063121183536852887 );
  • लिंग (लिंग);
  • प्रोफाइल फोटो।

साथ ही उपयोगकर्ता की प्रोफ़ाइल से अन्य जानकारी प्राप्त करने के लिए यह अच्छा होगा।

वेब के समाधान से एकत्रित समाधान "Google API के माध्यम से उपयोगकर्ता जानकारी प्राप्त करें"

इस कार्यक्षेत्र में जोड़ें – https://www.googleapis.com/auth/userinfo.profile

और प्राधिकरण के बाद, https://www.googleapis.com/oauth2/v1/userinfo?alt=json- से जानकारी प्राप्त करें

इसमें सामान का भार है – नाम, सार्वजनिक प्रोफ़ाइल यूआरएल, लिंग, फोटो इत्यादि सहित

गुंजाइश – https://www.googleapis.com/auth/userinfo.profile

return youraccess_token = access_token 

https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=youraccess_token प्राप्त करें

आपको जेसन मिलेगा:

 { "id": "xx", "name": "xx", "given_name": "xx", "family_name": "xx", "link": "xx", "picture": "xx", "gender": "xx", "locale": "xx" } 

ताहिर यासीन को:

यह एक पीएचपी उदाहरण है।
आप user.info सरणी प्राप्त करने के लिए json_decode फ़ंक्शन का उपयोग कर सकते हैं।

 $q = 'https://www.googleapis.com/oauth2/v1/userinfo?access_token=xxx'; $json = file_get_contents($q); $userInfoArray = json_decode($json,true); $googleEmail = $userInfoArray['email']; $googleFirstName = $userInfoArray['given_name']; $googleLastName = $userInfoArray['family_name']; 

इस अवसर https://www.googleapis.com/auth/userinfo.profile को अब नापसंद कर दिया गया है। कृपया https://developers.google.com/+/api/auth-migration#timetable देखें ।

प्रोफ़ाइल प्रोफ़ाइल प्राप्त करने के लिए आप नए स्कोप का उपयोग करेंगे: प्रोफ़ाइल या https://www.googleapis.com/auth/plus.login

और अंत बिंदु है – https://www.googleapis.com/plus/v1/people/ {userId} – वर्तमान में लॉग इन उपयोगकर्ता के लिए userId सिर्फ 'मी' हो सकता है।

मैं PHP का उपयोग कर रहा हूं और इसे google-api-php-client का संस्करण 1.1.4 का उपयोग कर हल किया है

यह मानते हुए कि उपयोगकर्ता को Google प्रमाणन पृष्ठ पर रीडायरेक्ट करने के लिए निम्न कोड का उपयोग किया जाता है:

  $client = new Google_Client(); $client->setAuthConfigFile('/path/to/config/file/here'); $client->setRedirectUri('https://redirect/url/here'); $client->setAccessType('offline'); //optional $client->setScopes(['profile']); //or email $auth_url = $client->createAuthUrl(); header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL)); exit(); 

एक मान्य प्रमाणन कोड मानते हुए redirect_url वापस किया redirect_url , निम्नलिखित प्रमाणीकरण कोड से एक टोकन उत्पन्न करेगा और साथ ही बुनियादी प्रोफ़ाइल जानकारी प्रदान की जाएगी:

  //assuming a successful authentication code is return $authentication_code = 'code-returned-by-google'; $client = new Google_Client(); //.... configure $client object code goes here $client->authenticate($authentication_code); $token_data = $client->getAccessToken(); //get user email address $google_oauth =new Google_Service_Oauth2($client); $google_account_email = $google_oauth->userinfo->get()->email; //$google_oauth->userinfo->get()->familyName; //$google_oauth->userinfo->get()->givenName; //$google_oauth->userinfo->get()->name; //$google_oauth->userinfo->get()->gender; //$google_oauth->userinfo->get()->picture; //profile picture 

हालांकि, स्थान वापस नहीं किया गया है नए YouTube खाते में यूट्यूब विशिष्ट उपयोगकर्ता नाम नहीं हैं

मैं नेट के लिए Google API का उपयोग कर रहा हूं, लेकिन इसमें कोई शक नहीं है कि आप एपीआई के दूसरे संस्करण का उपयोग करके इस जानकारी को प्राप्त करने का एक ही तरीका खोज सकते हैं। यूजर 872858 के रूप में उल्लेख किया गया है, स्कोप userinfo.profile नापसंद कर दिया गया है ( Google लेख )।

उपयोगकर्ता प्रोफ़ाइल जानकारी प्राप्त करने के लिए मैं निम्नलिखित कोड का उपयोग करता हूं ( Google के उदाहरण से पुनः लिखा भाग):

 IAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow( new GoogleAuthorizationCodeFlow.Initializer { ClientSecrets = Secrets, Scopes = new[] { PlusService.Scope.PlusLogin,"https://www.googleapis.com/auth/plus.profile.emails.read" } }); TokenResponse _token = flow.ExchangeCodeForTokenAsync("", code, "postmessage", CancellationToken.None).Result; // Create an authorization state from the returned token. context.Session["authState"] = _token; // Get tokeninfo for the access token if you want to verify. Oauth2Service service = new Oauth2Service( new Google.Apis.Services.BaseClientService.Initializer()); Oauth2Service.TokeninfoRequest request = service.Tokeninfo(); request.AccessToken = _token.AccessToken; Tokeninfo info = request.Execute(); if (info.VerifiedEmail.HasValue && info.VerifiedEmail.Value) { flow = new GoogleAuthorizationCodeFlow( new GoogleAuthorizationCodeFlow.Initializer { ClientSecrets = Secrets, Scopes = new[] { PlusService.Scope.PlusLogin } }); UserCredential credential = new UserCredential(flow, "me", _token); _token = credential.Token; _ps = new PlusService( new Google.Apis.Services.BaseClientService.Initializer() { ApplicationName = "Your app name", HttpClientInitializer = credential }); Person userProfile = _ps.People.Get("me").Execute(); } 

की तुलना में, आप उपयोगकर्ताप्रोफाइल का उपयोग करके लगभग कुछ भी एक्सेस कर सकते हैं।

अद्यतनः यह कोड काम करने के लिए आपको Google साइन इन बटन पर उपयुक्त स्कोप का उपयोग करना होगा। उदाहरण के लिए मेरे बटन:

  <button class="g-signin" data-scope="https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.profile.emails.read" data-clientid="646361778467-nb2uipj05c4adlk0vo66k96bv8inqles.apps.googleusercontent.com" data-accesstype="offline" data-redirecturi="postmessage" data-theme="dark" data-callback="onSignInCallback" data-cookiepolicy="single_host_origin" data-width="iconOnly"> </button> 

यदि आप क्लाइंट-साइड वेब परिवेश में हैं, तो नए auth2 जावास्क्रिप्ट एपीआई में एक बहुत आवश्यक getBasicProfile() फ़ंक्शन है, जो उपयोगकर्ता का नाम, ईमेल और छवि यूआरएल देता है।

https://developers.google.com/identity/sign-in/web/reference#googleusergetbasicprofile