User_id के साथ Google+ प्रोफ़ाइल चित्र url प्राप्त करना


92

मुझे पता है कि बहुत सारे सोशल नेटवर्क एपीआई किसी उपयोगकर्ता के प्रोफ़ाइल चित्र के लिए एक url बनाने का एक तरीका प्रदान करते हैं, जो उनके user_id या उपयोगकर्ता नाम का उपयोग करता है। फेसबुक के लिए यह इस तरह दिखता है:

http://graph.facebook.com/user_id/picture?type=square

अब Google प्लस के लिए कुछ ऐसा है? या बिना API कॉल के यूजर की तस्वीर पाने का कोई और तरीका ??


3
मैंने एक सुविधा अनुरोध खोला जिसे आप अपडेट प्राप्त करने के लिए स्टार कर सकते हैं यदि Google कभी इसे लागू करता है। code.google.com/p/google-plus-platform/issues/detail?id=167
abraham

यहाँ दूसरे तरीके के लिए एक उदाहरण है। उदाहरण के लिए अपनी Google+ प्रोफ़ाइल में अपने StackOverflow स्वभाव के लिए एम्बेडिंग: goo.gl/8EE4LT
लॉरेंज लो सॉयर

जवाबों:


100

Google ने अपनी नीति बदल दी थी इसलिए Google प्रोफ़ाइल छवि प्राप्त करने का पुराना तरीका अब काम नहीं करेगा, जो था

https://plus.google.com/s2/photos/profile/(user_id)?sz=150

ऐसा करने का नया तरीका है

URL का अनुरोध करें

https://www.googleapis.com/plus/v1/people/115950284...320?fields=image&key={YOUR_API_KEY}

Google प्रोफ़ाइल छवि url को json प्रारूप में देगा जैसा कि नीचे दिया गया है

प्रतिक्रिया:

{
    "image": 
    {
         "url": "https://lh3.googleusercontent.com/-OkM...AANA/ltpH4BFZ2as/photo.jpg?sz=50"
    }
}


URL के साथ भेजने के लिए अधिक पैरामीटर पाए जा सकते हैं जिनकी आपको यहाँ से आवश्यकता हो सकती है

अधिक विवरण के लिए आप दिए गए प्रश्न को भी देख सकते हैं जहाँ मैंने एक ही प्रकार की समस्या के लिए उत्तर दिया है कि Google प्लस में उपयोगकर्ता आईडी के माध्यम से उपयोगकर्ता की छवि कैसे प्राप्त करें?

हैप्पी कोडिंग !!


1
यह अभी भी पुनर्निर्देशित नहीं है, इसका उपयोग एक <img>टैग के भीतर नहीं किया जा सकता है
किरिल कुलकोव

2
यही कारण है कि JSON प्रारूप में इसका उल्लेख नहीं मिलता है, क्योंकि परिवर्तन हैं, इसलिए आप @KirillKulakov
TheMohanAhuja

1
@rgoraya आप API कॉल में अनुरोध नहीं कर सकते, लेकिन आप निश्चित रूप से छवि URL के साथ आकार जोड़ सकते हैं, जो कि आपको मिला है.../-OkM...AANA/ltpH...as/photo.jpg?sz=512
TheMohanAhuja

1
मैं एक बुरा अनुरोध त्रुटि है, क्या मैं अपने डेवलपर कंसोल पर सक्षम होना चाहिए
अर्विन डेलोस सैंटोस

3
क्या कोई ऐसा तरीका है जिसके द्वारा हम उपयोगकर्ता की प्रोफ़ाइल तस्वीर को Google प्लस एपीआई के बिना प्राप्त कर सकते हैं क्योंकि यह भविष्य में अपदस्थ किया जाएगा
सौरभ वर्मा

94

अद्यतन: नीचे दी गई विधि 2015 से काम नहीं कर रही है

प्रोफ़ाइल चित्र प्राप्त करना संभव है, और आप इसका आकार भी निर्धारित कर सकते हैं:

https://plus.google.com/s2/photos/profile/<user_id>?sz=<your_desired_size>

उदाहरण: मेरा प्रोफ़ाइल चित्र, जिसका आकार 100 पिक्सेल है:

https://plus.google.com/s2/photos/profile/116018066779980863044?sz=100

छवि टैग के साथ उपयोग:

<img src="https://plus.google.com/s2/photos/profile/116018066779980863044?sz=100" width="100" height="100">

आशा है कि आप इसे काम कर लेंगे!


1
हां, अभी काम नहीं कर रहा है, किसी को पता है कि क्या यह एक अस्थायी मुद्दा है या स्थायी है?
सेसिलिया अबादी

1
यह तरीका अब काम नहीं करता है। 404 त्रुटि देता है। मैंने Chrome, Safari, FireFox में परीक्षण किया।
जस्टिन

2
मैंने उत्तर को प्रतिबिंबित करने के लिए अद्यतन किया है कि उपरोक्त विधि कुछ दिन पहले की तरह काम नहीं करती है।
एमिल स्टेंस्ट्रम

1
@CeciliaAbadie: क्या आप पुष्टि कर सकते हैं कि आपकी विधि अभी भी काम करती है? कई बदलावों की कोशिश की, लेकिन यह मेरी उपयोगकर्ता आईडी के साथ काम नहीं कर सका (ऊपर उत्तर देखें)। क्या आप?
एमिल स्टेंस्ट्रम

2
@rgoraya: लेकिन आप xxxxxx भाग की गणना स्वचालित रूप से कैसे करते हैं?
एमिल स्टेंस्ट्रम

47

अद्यतन: Google ने इस पद्धति के लिए समर्थन बंद कर दिया, कि अब एक 404 (नहीं मिली) त्रुटि लौटाता है


यह सभी url किसी उपयोगकर्ता की प्रोफ़ाइल तस्वीर लाते हैं:

https://www.google.com/s2/photos/profile/{user_id}
https://plus.google.com/s2/photos/profile/{user_id}
https://profiles.google.com/s2/photos/profile/{user_id}

वे Google API से उसी छवि url पर पुनर्निर्देशित करते हैं, जो
lh6.googleusercontent.com/-x1W2-XNKA-A/AAAAAAAAAAI/AAAAAAAAAAA-ooSNulbLz8U/photo.jpg के रूप में एक बदसूरत लिंक से प्राप्त होती है।

सबसे सरल सीधे छवि स्रोत की तरह उपयोग करना है:

<img src="https://www.google.com/s2/photos/profile/{user_id}">

अन्यथा Google API कॉल के समान url प्राप्त करने के लिए आप चित्र शीर्षलेख पढ़ सकते हैं,
उदाहरण के लिए PHP में:

$headers = get_headers("https://www.google.com/s2/photos/profile/{user_id}", 1);
echo "<img src=$headers[Location]>";

जैसा कि आलेख में वर्णित है PHP का उपयोग करके Google Plus प्रोफ़ाइल चित्र


1
प्रत्येक अनुरोध के लिए HTTP अनुरोध करने की आवश्यकता नहीं है, मेरा उत्तर देखें।
एमिल स्टेंस्ट्रम

1
क्या यह कहीं भी प्रलेखित है?
जोनास अल्वेस

1
हालांकि यह पूरी तरह से काम करता है, मैं इस तरह से नहीं जाऊंगा, क्योंकि Google बस इसका समर्थन करना बंद कर सकता है, क्योंकि मैं कहीं भी एक आधिकारिक दस्तावेज नहीं देखता हूं
Lefteris

मैंने नीचे एक पूर्ण साक्ष्य उत्तर जोड़ा है
एरवान

नीचे मैंने उपयोगकर्ता आईडी द्वारा Google प्रोफ़ाइल छवि प्राप्त करने के लिए एक नया समाधान जोड़ा है, जो कि 404 त्रुटि नहीं है कृपया इसे जांचें।
दीपक गोस्वामी

26

दृष्टिकोण 1: (अब काम नहीं करता है)

https://plus.google.com/s2/photos/profile/<user_id>?sz=<your_desired_size>

दृष्टिकोण 2: (प्रत्येक अनुरोध आपकी एपीआई दर सीमाओं में गिना जाता है, जो प्रति दिन 10k अनुरोध मुफ्त है)

https://www.googleapis.com/plus/v1/people/<user_id>?fields=image&key={YOUR_API_KEY}

निम्नलिखित प्रतिक्रिया प्रारूप के साथ:

{ "image": { "url": "lh5.googleusercontent.com/-keLR5zGxWOg/.../photo.jpg?sz=50"; } }

दृष्टिकोण 3: (डोनट को एपीआई कुंजी की आवश्यकता होती है)

http://picasaweb.google.com/data/entry/api/user/<user_id>?alt=json

json प्रतिक्रिया में आपको "gphoto $ थंबनेल" नाम की एक संपत्ति मिलती है, जिसमें निम्न की तरह प्रोफ़ाइल चित्र url शामिल है:

http://lh6.ggpht.com/-btLsReiDeF0/AAAAAAAAAAI/AAAAAAAAAAA/GXBpycNk984/s64-c/filename.jpg

आप URL को "s64-c" भाग में देख सकते हैं, जिसका अर्थ है कि छवि का आकार 64 होना चाहिए, मैंने "s100-c" जैसे अन्य मूल्यों का उपयोग करने की कोशिश की है और उन्होंने काम किया है। इसके अलावा अगर आप "s64-c" भाग को हटाते हैं और "sz = 100" पैरामीटर को जोड़ते हैं, तो यह भी अब तक काम करेगा। हालांकि यह एक gplus उपयोगकर्ता की प्रोफाइल तस्वीर प्राप्त करने का बहुत अच्छा तरीका नहीं है, लेकिन इसका फायदा यह है कि इसके लिए किसी एपीआई कुंजी की आवश्यकता नहीं है।


दृष्टिकोण 2 पर क्या आपको पता है कि एपीआई कॉल द्वारा छवि का आकार कैसे सेट करें?
मका

@ माका आपको इस तरह से एपीआई प्रतिक्रिया मिलनी चाहिए: {"image": {"url": " lh5.googleusercontent.com/-keLR5zGxWOg/.../photo.jpg?z=50 "}} जहाँ से आप सेट कर सकते हैं। sz पैरामीटर विभिन्न छवि आकारों के लिए
मासुम

lol..google उन लोगों के लिए उनके एपीआई के तहत आने के लिए हर सार्वजनिक रूप से उपलब्ध छवि लिंक को हैक करने के लिए है जिनके पास एपीआई कुंजी प्राप्त करने के अलावा कोई विकल्प नहीं है।
user1323136

2
मुझे आश्चर्य है कि अगर picasaweb जैसा कुछ है, लेकिन आप सीधे ईमेल से चित्र प्राप्त करते हैं और google + नहीं। मेरे पास केवल एक उपयोगकर्ता का मामला है, जिसकी आपके जीमेल खाते में एक छवि है, लेकिन Google + पर प्रोफ़ाइल नहीं है, और छवि नहीं लाती है। केवल इस lh3.googleusercontent.com/-k10Va1BdzL8/AAAAAAAAAAAAA/AAAAAAAAAAA//
jose920405

2
picasaweb.google.com एपीआई depriciated और जनवरी से बंद कर दिया जाएगा है 2019 developers.google.com/picasa-web
सिद्धेश

11

Google, कोई API आवश्यक नहीं:

$data = file_get_contents('http://picasaweb.google.com/data/entry/api/user/<USER_ID>?alt=json');
$d = json_decode($data);
$avatar = $d->{'entry'}->{'gphoto$thumbnail'}->{'$t'};

// आउटपुट उदाहरण: https://lh3.googleusercontent.com/-2N6fRg5OFbM/AAAAAAAAAAI/AAAAAAAAADE/2-RmpExH6iU/s64-c/photo.jpg

बदलें: आकार के लिए "s64" में 64


1
यह ठीक है, लेकिन अवतार डिफ़ॉल्ट या वास्तविक उपयोगकर्ता द्वारा अपलोड किए जाने पर वापस नहीं आता है।
मिगेल

4

यदि आप वर्तमान में लॉग इन उपयोगकर्ता के लिए प्रोफ़ाइल चित्र दिखाना चाहते हैं, तो आपको {user_id} जानने की भी आवश्यकता नहीं है। बस का उपयोग https://plus.google.com/s2/photos/profile/meकरना पर्याप्त होगा।


धन्यवाद, लेकिन दुर्भाग्य से यह वर्तमान उपयोगकर्ता के लिए लॉग इन नहीं है
Arvan

सवाल user_id का उपयोग करके प्रोफ़ाइल चित्र प्राप्त करने के बारे में था। मेरे
makki

3

आप Google+ API के People.get पद्धति का उपयोग करके प्रोफ़ाइल छवि के लिए URL प्राप्त कर सकते हैं । इसके लिए एक अतिरिक्त दौर की यात्रा की आवश्यकता होती है, लेकिन छवि प्राप्त करने का सबसे विश्वसनीय तरीका है।

आप तकनीकी रूप से उस URL का भी उपयोग कर सकते हैं https://s2.googleusercontent.com/s2/photos/profile/{id}?sz={size}जो फिर अंतिम URL पर रीडायरेक्ट करेगा। {id}Google उपयोगकर्ता आईडी या पुराने Google प्रोफ़ाइल उपयोगकर्ता नाम में से एक है (वे अभी भी उन उपयोगकर्ताओं के लिए मौजूद हैं जिनके पास उनके पास था, लेकिन मुझे नहीं लगता कि आप अब और नए बना सकते हैं)। {size}पिक्सल में फोटो का वांछित आकार है। मैं लगभग निश्चित है यह है कर रहा हूँ नहीं , एक प्रलेखित, समर्थित सुविधा है, इसलिए मैं कुछ भी महत्वपूर्ण के लिए इस पर निर्भर नहीं होगा, क्योंकि यह बिना किसी सूचना के किसी भी समय दूर जा सकते हैं। लेकिन त्वरित प्रोटोटाइप या छोटे एकतरफा अनुप्रयोगों के लिए, यह पर्याप्त हो सकता है।


क्या यह कहीं भी प्रलेखित है?
जोनास अल्वेस

हाँ, जस्टिन सही हो रहा है ... यह अब काम नहीं करता है।
नोरिस

2

अधिकांश उपयोगकर्ताओं के लिए / s2 / प्रोफ़ाइल / फ़ोटो url पर पहुंचने की कोशिश कर रहा है, लेकिन सभी नहीं।

Google+ API का उपयोग करने के लिए एकमात्र पूर्ण प्रमाण विधि है। सार्वजनिक प्रोफ़ाइल डेटा का अनुरोध करने के लिए आपको उपयोगकर्ता प्रमाणीकरण की आवश्यकता नहीं है, इसलिए यह एक सरल विधि है:

  1. Https://cloud.google.com/console पर Google+ API कुंजी प्राप्त करें

  2. एक सरल GET अनुरोध करें: https://www.googleapis.com/plus/v1/people/+ <username> और =?

उपयोगकर्ता नाम से पहले + नोट करें। यदि आप इसके बजाय उपयोगकर्ता आईडी का उपयोग करते हैं (अंकों की लंबी स्ट्रिंग), तो आपको + की आवश्यकता नहीं है

  1. आपको प्रोफ़ाइल डेटा का बहुत व्यापक JSON प्रतिनिधित्व मिलेगा जिसमें शामिल हैं: "छवि": {"url": " https://lh4.googleusercontent.com/ ..... शेष चित्र url .... "}

2

यदि आप Flutter का उपयोग करते हैं, तो आप इसे people.googleapis.comएंडपॉइंट के माध्यम से एक्सेस कर सकते हैं , कोड google_sign_inलाइब्रेरी का उपयोग करता है

import 'package:google_sign_in/google_sign_in.dart';

Future<String> getPhotoUrl(GoogleSignInAccount account, String userId) async {
  // final authentication = await account.authentication;
  final url = 'https://people.googleapis.com/v1/people/${userId}?personFields=photos';
  final response = await http.get(
    url,
    headers: await account.authHeaders
  );

  final data = json.decode(response.body);
  return data['photos'].first['url'];
}

आपको कुछ ऐसा मिलेगा

{
  resourceName: people/998812322529259873423, 
  etag: %EgQBAzcabcQBAgUH, 
  photos: [{metadata: {primary: true, source: {type: PROFILE, id: 107721622529987673423}}, 
  url: https://lh3.googleusercontent.com/a-/abcdefmB2p1VWxLsNT9WSV0yqwuwo6o2Ba21sh_ra7CnrZ=s100}]
}

urlएक सुलभ छवि url कहां है।


2

लीगेसी Google+ API को 7 मार्च, 2019 तक बंद कर दिया गया है। हाल ही में शटडाउन योजना में बदलाव किए गए हैं जो कुछ डेवलपर्स पर इसके प्रभाव को कम कर सकते हैं।


1

हर संभव कोशिश की .. यहाँ काम कर रहे कोड का अंतिम टुकड़ा है। आशा है कि यह किसी ऐसे व्यक्ति की मदद करता है जो इसकी तलाश कर रहा है।

    <?
$url='https://www.googleapis.com/plus/v1/people/116599978027440206136?fields=image%2Furl&key=MY_API_KEY&fields=image';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
$d = json_decode($response);
$avatar_url = $d->{'image'}->{'url'};
echo $avatar_url;
?>

-5

सरल उत्तर: नहीं

आपको फोटो प्राप्त करने के लिए व्यक्ति एपीआई और प्रोफ़ाइल छवि को लेना होगा। डेटा प्राप्त करें। AFAIK उस url के लिए कोई डिफ़ॉल्ट प्रारूप नहीं है जिसमें userID हो।


आप को यकीन है? मुझे आश्चर्य है कि अगर उनके पास ऐसी कोई योजना है? फिर भी धन्यवाद।
अरवन

1
यदि आप अलग-अलग प्रोफाइल देखते हैं और क्रोम में "इंस्पेक्ट एलिमेंट" जैसे html आउटपुट को देखते हैं, तो आप देखेंगे कि वे सभी अलग-अलग हैं और उनमें यूजरआईडी नहीं है। इसके अलावा आधिकारिक डॉक्स पर कुछ भी नहीं है।
कोल्जा

2
यह संभव है, दोनों को छवि मिल जाए, और देखने के लिए एक विशिष्ट आकार निर्धारित करें। नीचे मेरा जवाब देखें।
एमिल स्टेनस्ट्रॉम

यह संभव नहीं था जब सवाल और यह जवाब जहां पोस्ट किया गया :)
अरवन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.