7

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

FB.login(function(res) { 
    if (res.status == 'connected') { 
     auth = res.authResponse; // cache auth response 
     getAlbums(); 
    } 
}); 

सफल होने पर, मैं वापस आ प्रमाणन वस्तु कैश और तुरंत के साथ उपयोगकर्ता के एल्बम लाने: लौटे वस्तु मैं पुनरावृति का उपयोग

function getAlbums() { 
    FB.api('/me/albums', function(res) { 
     albums = res.data; 
    }); 
} 

साथ एलबम पर और प्रदर्शित उनकी cover_photo:

https://graph.facebook.com/{{album.cover_photo}}/picture?type=normal&access_token={{auth.accessToken}} 

पहली बार, सभी कवर फोटो में किसी उपयोगकर्ता के लॉग प्रश्न चिह्न प्रतीक हैं। हालांकि, यदि उपयोगकर्ता रीफ्रेश करता है, या पृष्ठ पर लौटाता है, तो ऐप फिर से प्रमाणीकृत करता है, पहचानता है कि उपयोगकर्ता पहले ही लॉग इन है, और उचित cover_photo थंबनेल प्रदर्शित करता है।

मैं नए प्रमाणित उपयोगकर्ताओं को अपनी कवर फ़ोटो देखने में सक्षम होने के लिए कैसे प्राप्त कर सकता हूं?

+0

कवर छवि एक प्रश्न चिह्न है जब आपके एल्बम में कोई छवियां नहीं हैं। मुझे लगता है कि किसी कारण से, आपकी ऑब्जेक्ट पहली बार प्रमाणीकरण के लिए ठीक से लोड नहीं हो रही है। क्या आप अपने कोड में कॉलबैक का सही इस्तेमाल कर रहे हैं? –

+0

मैंने इस समस्या को रिक्त एक्सेस टोकन के साथ पुन: उत्पन्न किया है, https://graph.facebook.com/10200952202073231/picture?type=normal&access_token= कंसोल करने का प्रयास करें। आप जिस एफबी को प्राप्त करते हैं उसे FB.login कॉलबैक – Bnaya

उत्तर

4

मुझे यकीन नहीं है, लेकिन मुझे लगता है कि आपने authResponseChangeevent की सदस्यता नहीं ली है।

सरल कोड का निम्न भाग ही करता है आप देख रहे हैं कि तक- और

<html> 
<head></head> 
<body> 
<div id="fb-root"></div> 
<script> 
var access_token = ""; 
window.fbAsyncInit = function() 
{ 
    FB.init({ 
     appId  : '<APP-ID>', 
     status  : true, 
     cookie  : true, 
     xfbml  : true 
    }); 

    FB.Event.subscribe('auth.authResponseChange', function(response) 
    { 
     access_token = response.authResponse.accessToken; 
     if (response.status === 'connected') 
     { 
      FetchUserPhotos(); 
     } 
     else if (response.status === 'not_authorized') 
     { 
      FB.login('scope: user_photos'); 
     } 
     else 
     { 
      FB.login('scope: user_photos'); 
     } 
    }); 
}; 

// Load the SDK asynchronously 
(function(d){ 
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
if (d.getElementById(id)) {return;} 
js = d.createElement('script'); js.id = id; js.async = true; 
js.src = "//connect.facebook.net/en_US/all.js"; 
ref.parentNode.insertBefore(js, ref); 
}(document)); 

function FetchUserPhotos() 
{ 
    FB.api('/me/albums', function(response) 
    { 
     var albums = response.data; 
     for(var i=0; i<albums.length; i++) 
     { 
      var album = albums[i]; 
      if(album.cover_photo != undefined) 
      { 
       FB.api("/"+album.cover_photo+"?access_token="+access_token, function(cover_photo) 
       { 
        console.log(cover_photo.source); 
       });  
       //console.log("https://graph.facebook.com/"+album.cover_photo+"/picture?type=normal&access_token="+access_token); 
      } 
     }   
    }); 
} 
</script> 

<fb:login-button scope="user_photos" show-faces="true" width="200" max-rows="1"></fb:login-button> 
</body> 
</html> 

आशा है कि यह मदद करता है, अच्छी किस्मत!

+0

पर संबंधित लेख घटनाएं, हालांकि, समस्या एल्बम को पुनर्प्राप्त नहीं कर रही है, यह पहली बार उपयोगकर्ता द्वारा ऐप में लॉग इन करने वाले उन एल्बमों से cover_photos को पुनर्प्राप्त कर रहा है। एक बार जब वे cover_photos सामान्य के रूप में दिखाई देते हैं। – Soviut

+0

ठीक है, लेकिन कवर फोटो भी एक बार में लाए जाते हैं, है ना? मैंने कवर फोटो प्राप्त करने के लिए कोड संपादित किया है और इसके अच्छे काम –

+0

धन्यवाद, हालांकि, मुझे छवियां वापस मिल रही हैं, लेकिन वे प्रश्न चिह्न "डिफ़ॉल्ट" छवि दिखा रहे हैं, इसलिए एक साधारण console.log पर्याप्त नहीं हो सकता है साबित करें कि यह काम कर रहा है। – Soviut

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