2010-05-17 12 views
11

एक्सबनी नामक एक आउटलुक प्लगइन है जिसमें वास्तव में एक अच्छी सुविधा है, अगर किसी संपर्क में ईमेल पता है, तो वह उस संपर्क की प्रोफ़ाइल तस्वीर लाएगा और इसे प्रदर्शित करेगा।मैं ईमेल से फेसबुक प्रोफाइल छवि कैसे प्राप्त कर सकता हूं?

Xobni व्यक्ति जो वर्तमान में Xobni साइडबार में देखा जा रहा है के लिए फेसबुक प्रोफाइल को पुनः प्राप्त करने के लिए फेसबुक एक एन्क्रिप्टेड ईमेल पता भेजता है: उनके पूछे जाने वाले प्रश्न निम्नलिखित में कहा गया है। आपकी खुद की फेसबुक प्रोफ़ाइल Xobni द्वारा कभी नहीं बदला जाता है, और अन्य प्रोफाइल देखने पर सभी फेसबुक गोपनीयता सेटिंग्स का सख्ती से पालन किया जाता है।

मैं इस कार्यक्षमता को डुप्लिकेट करना चाहता हूं। हालांकि, मैं यह नहीं समझ सकता कि वे किस एपीआई कॉल का उपयोग कर रहे हैं। मैं मान रहा हूं कि जब वे "एन्क्रिप्टेड ईमेल पता" कहते हैं जो ईमेल हैश के लिए लेमेन के नियम हैं। एक बार उपयोगकर्ता नाम प्राप्त हो जाने के बाद, ग्राफ एपीआई वास्तव में छवि लाने के लिए आदर्श दिखता है, लेकिन मुझे ईमेल हैश से प्रोफाइल आईडी में जाने में परेशानी हो रही है।

+0

अधिक जानकारी: मैं आउटबाउंड कॉल की निगरानी करने के लिए अपने मशीन पर एक स्निफर स्थापना की, और मुझे पता चला कि यह एक अप्रकाशित, शायद गैर है सार्वजनिक विधि जिसे facebook.users.getByEmail कहा जाता है। मैं इसके साथ खेल रहा हूं, लेकिन मैं आशावादी नहीं हूं। किसी और के पास ईमेल से यूआईडी पर जाने पर कोई विचार है? – Forbini

+0

यदि आपने कभी इसे समझ लिया है तो मुझे बताएं - मुझे मिल गया है अगर आप लॉग इन हैं तो आप खोज पेज को पार्स करके प्रोफाइल आईडी प्राप्त कर सकते हैं, जिसे आप एक ईमेल पता दे सकते हैं। इसके लिए आपकी स्क्रिप्ट/प्रोग्राम को खोज-पृष्ठ अनुरोध के साथ वैध लॉग-इन कुकीज़ भेजने की आवश्यकता है, हालांकि ... – Mala

उत्तर

3

मैं इस सटीक चीज़ को करने का एक तरीका खोज रहा हूं ... अभी तक कोई प्रयास नहीं हुआ है।

क्या कोई भी समाधान ढूंढने में सक्षम है?

अद्यतन: मैंने PHP में इस स्निपेट को एक साथ रखा है। यह केवल एकमात्र तरीका है जिसे मैं अपना लक्ष्य पूरा करने में सक्षम हूं। मुझे यकीन है कि कैसे Xobni यह क्या कर रही है

<?php 

/* Email to Search By */ 
$eml = '[email protected]'; 

/* This is where we are going to search.. */ 
$url = 'http://www.facebook.com/search.php?q=' . urlencode($eml); 

/* Fetch using cURL */ 
$ch = curl_init(); 

/* Set cURL Options */ 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

/* Tell Facebook that we are using a valid browser */ 
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13'); 

/* Execute cURL, get Response */ 
$response = curl_exec($ch); 

/* Check HTTP Code */ 
$response_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 

/* Close cURL */ 
curl_close($ch); 

/* 200 Response! */ 
if ($response_code == 200) { 

    /* Parse HTML Response */ 
    $dom = new DOMDocument(); 
    @$dom->loadHTML($response); 

    /* What we are looking for */ 
    $match = 'http://www.facebook.com/profile.php?id='; 

    /* Facebook UIDs */ 
    $uids = array(); 

    /* Find all Anchors */ 
    $anchors = $dom->getElementsByTagName('a'); 
    foreach ($anchors as $anchor) { 
     $href = $anchor->getAttribute('href'); 
     if (stristr($href, $match) !== false) { 
      $uids[] = str_replace($match, '', $href); 
     } 
    } 

    /* Found Facebook Users */ 
    if (!empty($uids)) { 

     /* Return Unique UIDs */ 
     $uids = array_unique($uids); 

     /* Show Results */ 
     foreach ($uids as $uid) { 

      /* Profile Picture */ 
      echo '<img src="http://graph.facebook.com/' . $uid. '/picture" alt="' . $uid . '" />'; 

     } 

    } 

} 


? 
+0

ठीक है .. यह काम 100% काम नहीं करता है। Profile.php के लिए $ match खोजें? Id = link कुछ फेसबुक उपयोगकर्ताओं ने अपने कस्टम लिंक सेट किए हैं जो facebook.com/MyAliasName हैं। (बांधो! मैंने सोचा कि मेरे पास यह था) यह पता लगाने पर काम करना कि यह जानकारी कहां मिल सकती है। – McHerbie

+1

अपडेट करें: http://zesty.ca/facebook/ – McHerbie

13

आप निम्न URL क्वेरी प्रयोक्ता आईडी प्राप्त करने के लिए कर सकते हैं (यदि कोई फेसबुक पर मौजूद है) (मुझे यकीन है कि वे इसके बारे में कम हस्तक्षेप करते हैं हूँ) नहीं कर रहा हूँ:

https://graph.facebook.com/search?access_token=YOUR_ACCESS_TOKEN&q=EMAIL_ADDRESS_URL_ENCODED&type=user 

फिर <img src="https://graph.facebook.com/USER_ID/picture"> आपको तस्वीर देता है।

और जानकारी: article at codinglogs.com

2

बहुत धन्यवाद @McHerbie, आप मुझे सुराग अंत में मेरी कोड काम करना आरंभ कर दिया। कुंजी को एन्कोड करने के लिए urlencode() फ़ंक्शन है !!!

public function getFacebookPictureByScrapping($email="[email protected]", $file="fbPicture.jpg") { 
      require_once('protected/extensions/simplehtmldom/simple_html_dom.php'); 
      $userEmail = urlencode($email); 

      ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13'); 

      $url = "http://www.facebook.com/search.php?q=$userEmail&type=all&init=srp"; 
      $html = new simple_html_dom(); 
      $html = file_get_html($url); 

      if (is_object($picture = $html->find(".uiList .img",0))) { 
       $image = file_get_contents($picture->src, false); 
       file_put_contents($file); 
       return $file; 
      } else { 
       return null; 
      } 
    } 
+0

जो मुझे पता है, उससे प्रोफाइल छवियां प्राप्त करना संभव नहीं है – aleksdj

1

मैं जानता हूँ कि इस पोस्ट थोड़ा पुराना है, लेकिन केवल बस अब यह पाया - आप FullContact व्यक्ति एपीआई (पूर्ण प्रकटीकरण की कोशिश कर सकते - मैं: धन्यवाद, यह मेरा काम कर पीएचपी सरल HTML डोम पार्सर का उपयोग कर कोड है मीटर पक्षपाती, मैं उनके लिए काम):

http://www.fullcontact.com/developer/

एक तरफ, यह संबंधित सामाजिक मीडिया प्रोफाइल जब आप ईमेल के आधार पर क्वेरी खींच लेंगे ताकि आप खोजने के लिए और संबद्ध प्रोफ़ाइल खींच सकते हैं ... लेकिन दूसरी ओर, आप प्रोफ़ाइल छवियों को सीधे खींचने के लिए कुछ समय & भी सहेज सकते हैं।

प्रतिक्रिया स्कीमा में शामिल हैं:

"photos": 
    [ 
    { 
     "typeId": [photo type], 
     "typeName": [photo type name], 
     "url": [photo url], 
     "isPrimary": [boolean] 
    } 
    ] 

और जानकारी: http://www.fullcontact.com/developer/docs/person/#lookup-by-email-3

+1

कृपया प्रचार पूछे जाने वाले उत्तर पोस्ट करने से पहले मुझे आपके द्वारा पोस्ट की गई एफएक्यू एंट्री पढ़ें। –

+0

आपका स्वागत है :) –

3

यह अब संभव के माध्यम से फेसबुक ग्राफ एपीआई ईमेल पते के साथ उपयोगकर्ता की जानकारी खोज करने के लिए है। हालांकि यह अभी भी काम करता है यदि आपके पास फेसबुक उपयोगकर्ता आईडी है, लेकिन यदि आप खोज एपीआई के साथ फेसबुक आईडी नहीं प्राप्त कर सकते हैं, तो आप अब ऐसा नहीं कर सकते हैं।

https://developers.facebook.com/x/bugs/453298034751100/

एपीआई निम्नलिखित प्रतिक्रिया वापस आ जाएगी:

{ 
    "error": { 
     "message": "(#200) Must have a valid access_token to access this endpoint", 
     "type": "OAuthException", 
     "code": 200 
    } 
} 
संबंधित मुद्दे

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