2011-12-15 14 views
7

सारांश के सत्यापन करने से पहले फेसबुक उपयोगकर्ता के प्रोफ़ाइल चित्र प्राप्त करें:एप्लिकेशन

मैं एक वेबसाइट ग्राफ़ एपीआई के माध्यम से फेसबुक से कनेक्ट होता है पर काम कर रहा हूँ। मुझसे पूछा गया कि क्या मैं उपयोगकर्ता की प्रोफ़ाइल तस्वीर प्राप्त कर सकता हूं अगर वे पहले से ही फेसबुक में लॉग इन हैं, लेकिन ऐप को प्रमाणीकृत करने वाले उपयोगकर्ता से पहले। क्या यह संभव है?

संपादित करें: मुझे पता है तुम http://graph.facebook.com/USERNAME_OR_USERID/picture?type=large पर जाकर लोगों के प्रोफ़ाइल चित्र प्राप्त कर सकते हैं, लेकिन मैं अगर वे फेसबुक में लॉग इन किया है, लेकिन मेरे ऐप अधिकृत नहीं किया है एक उपयोगकर्ता के यूजरनेम या आईडी प्राप्त करने में सक्षम हो सकता है?


विवरण:

Facebook API User documentation के अनुसार, आप एक ACCESS_TOKEN बिना उनके फेसबुक आईडी प्राप्त कर सकते हैं, और मुझे पता है अगर आप एक उपयोगकर्ता के/मुझे यूआरएल पर सीधे जाने के आप अपनी बुनियादी जानकारी देख सकते हैं। फेसबुक आईडी के साथ, मैं अपनी प्रोफाइल तस्वीर ले सकता हूं।

हालांकि, जब मैं इसे निम्नलिखित कोड का उपयोग कर वेबसाइट से कॉल करने का प्रयास करता हूं, तो मुझे OAuthException त्रुटि मिलती है।

FB.api('/me', function(response) { 
    console.log(response); 
}); 

मेरा अनुमान है कि एप्लिकेशन को प्रमाणित करने के लिए है कि वे है, लेकिन मैं यह देखने के लिए कि क्या मैं उनके प्रोफ़ाइल तस्वीर होने का तरीका खो चुके होंगे रहा हूँ।

आपकी मदद के लिए धन्यवाद!

+0

कोई बात नहीं। मुझे जवाब मिला। आप अपना उपयोगकर्ता नाम या आईडी नहीं प्राप्त कर सकते हैं: http://facebook.stackoverflow.com/questions/7520300/facebook-app-without-prompted- प्रमाणीकरण –

उत्तर

7

आप प्रमाणीकरण के बिना सभी की फेसबुक प्रोफ़ाइल तस्वीर प्राप्त कर सकते हैं।

आप बस http://graph.facebook.com/USERID/picture?type=large पर कॉल करें। यह यूआरएल आपको छवि यूआरएल पर रीडायरेक्ट करता है।

संपादित करें: उपयोगकर्ता नाम द्वारा क्वेरी करने की अनुमति नहीं है, इसलिए मैंने USERNAME_OR_USERID को USERID के रूप में अपडेट किया।

+0

धन्यवाद, सेब्रीसी। मैं इस यूआरएल के बारे में जानता हूं, लेकिन मुझे उनके उपयोगकर्ता नाम या आईडी को प्रमाणित किए बिना कैसे मिलेगा? –

+2

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

+0

मैं इसका उपयोग कर रहा हूं यूआरएल है, लेकिन यह एक 'प्रश्न चिह्न' के साथ एक खाली छवि वाले पृष्ठ पर रीडायरेक्ट कर रहा है। क्या आप मेरी मदद कर सकते हैं ? –

2

हाँ आप प्राप्त कर सकते हैं ..

http://graph.facebook.com/naseer.panhwer/picture?type=normal 
http://graph.facebook.com/naseer.panhwer/picture?type=small 
http://graph.facebook.com/naseer.panhwer/picture?type=large 
+1

धन्यवाद, नसीर। मैं इस यूआरएल के बारे में जानता हूं, लेकिन मुझे उनके उपयोगकर्ता नाम या आईडी को प्रमाणित किए बिना कैसे मिलेगा? –

0

आप इस प्रकार एक आवेदन आईडी और गुप्त का उपयोग कर एक पहुँच टोकन उत्पन्न कर सकते हैं:

https://graph.facebook.com/oauth/access_token?client_id= {AppID} & client_secret = {} appSecret & grant_type = client_credentials

नोट: क्लाइंट पक्ष पर ऐसा न करें क्योंकि आपको अपना एप्लिकेशन अपहृत होने का जोखिम है।

परिणामस्वरूप टोकन उपयोगकर्ताओं को ग्राफ एपीआई के साथ लॉगिन प्रॉम्प्ट के बिना क्वेरी करने के लिए उपयोगकर्ता हो सकता है।

0

अमेरिकन प्लान चित्र प्राप्त करने के लिए कैसे w/ओ OAuth या पहुंच टोकन:

मैं कुछ सदस्यों का ही चित्र प्राप्त करने की कोशिश कर रहा था, लेकिन मैं तो फंस गया था इस स्निपेट लिखा था और मेरे लिए काम किया,

एचटीएमएल टैग

<img src="getFbImage.php?id=<fbid_of_the_person>&type=[small|large]" /> 

PHP कोड

<?php 

    $remoteImage = !isset($_GET['id']) ? "../images/default.png" : getImg($_GET['id']); 
    $imginfo = getimagesize($remoteImage); 
    header("Content-type: ".$imginfo['mime']); 
    readfile($remoteImage); 

    function getImg($id){ 
     $dom = new DOMDocument; 
     $dom->loadHTML(getData($id)); 
     $tags = $dom->getElementsByTagName('img'); 
     $img = ''; 
     foreach ($tags as $tag) { 
      $img =$tag->getAttribute('src'); 
      if($img=='') 
       continue; 
      else if(isset($_GET['type']) && $_GET['type']=='large') 
       break; 
     } 
     //This iteration has a lot of images try your luck. 
     return $img; 
    } 

    function getData($id){ 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL,'https://www.facebook.com/photo.php?fbid='.$id); 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_HEADER, 0); 
     curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 Firefox/39.0'); 
     $data = curl_exec($ch); 
     curl_close($ch); 
     return $data; 
    } 
?> 

मुझे केवल 30x30 छवि का उपयोग करना पड़ा और मुझे वह चाहिए जो मैं चाहता था। यह जांचें कि यह आपको एक बड़ी छवि भी प्रदान करता है।

चीयर्स! जॉय

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