जावास्क्रिप्ट में घटनाओं और दोस्तों की घटनाओं की क्वेरी करने के लिए FB.api का उपयोग करना

मैं एक छोटा ऐप लिख रहा हूं कि उपयोगकर्ता को फेसबुक में लॉग करने के बाद, एक क्वेरी चलाती है और परिणाम को कंसोल में प्रदर्शित करती है, और मैं समस्याओं में भाग ले रहा हूं:

सबसे पहले, मैं लॉगिन-चीज करता हूं:

FB.Event.subscribe('auth.authResponseChange', function(response) {
        if (response.status === 'connected') {
            var accesstoken=response;
            getSomeEvents(accesstoken);
        } else if (response.status === 'not_authorized') {
            FB.login(function(response){
            }, {scope: 'email,user_likes, user_events, friends_events'});

        } else {
            FB.login(function(response){
            }, {scope: 'email,user_likes, user_events, friends_events'});
        }
    });
};

फिर, मैं ग्राफ एपीआई के साथ एफबी से पूछने की कोशिश करता हूं। नीचे, मैं अपनी समस्या को स्पष्ट करने के लिए क्वेरी को सरल बना रहा हूं

function getSomeEvents(accesstoken){
  var query2=encodeURI("SELECT name, eid, venue, location FROM event WHERE eid=364689750343572 & access_token="+accesstoken.authResponse.accessToken);

    //Method 1: Querying with the graph API
    FB.api('/fql?q='+query2, function(events) {
        console.log('In Method 1 - Updated Graph API - event-name is ' + events.name + '.');
    });
   }

क्रोम डीबगर मुझे यह देता है: "आपका कथन सूचकांक नहीं है। WHERE खंड में एक अनुक्रमणीय कॉलम होना चाहिए। ऐसे कॉलम * से जुड़े तालिकाओं में * के साथ चिह्नित हैं ..."

However, EID is indexable according to this: https://developers.facebook.com/docs/reference/fql/event

इसके अलावा, अगर मैं क्वेरी को प्रतिस्थापित करता हूं जो मैं वास्तव में करने की कोशिश कर रहा हूं:

var query2=encodeURI("SELECT name, eid, venue, location FROM event WHERE eid in ( SELECT eid FROM event_member WHERE uid in (SELECT uid2 FROM friend WHERE uid1 = me()) ) limit 100 & access_token="+accesstoken.authResponse.accessToken);

मुझे क्रोम डीबगर में यह मिलता है: "(# 601) पार्सर त्रुटि: क्वेरी का अप्रत्याशित अंत।"; टाइप करें: OAuthException

दोनों प्रश्न फेसबुक ग्राफ़ एपीआई कंसोल में काम करते हैं, और जीईटी-अनुरोध के रूप में सीधे ब्राउज़र में टाइप करते समय डेटा लौटाते हैं ( http : //graph.facebook.com/fql q = )।

क्या मैं गलत क्या कर रहा हूँ के बारे में कोई विचार?

0

1 उत्तर

किसी ईवेंट के विवरण प्राप्त करने के लिए आपको accesstoken की आवश्यकता नहीं है।

मुझे नहीं पता कि आपको यह समस्या क्यों मिल रही है, मुझे लगता है कि यह एक एन्कोडिंग त्रुटि है। वैसे भी यह काम करता है:

var query2="SELECT name, eid, venue, location FROM event WHERE eid=364689750343572";

FB.api('/fql',{ q: query2}, function(response) {

        console.log(response.data)
        console.log('In Method 2 - Updated Graph API - event-name is ' + response.data[0].name + '.');
    });     
}

याद रखें प्रतिक्रिया प्रतिक्रिया.data के तहत वापस आती है, और वे परिणाम एक सरणी हैं।

पीएस आप एफक्यूएल का उपयोग किये बिना सीधे घटना जानकारी प्राप्त कर सकते हैं:

FB.api('/364689750343572/', function(response) {            
console.log('In Method 1 - Updated Graph API - event-name is ' + response.name + '.');
});        
}

Source: https://developers.facebook.com/docs/reference/javascript/FB.api/

0
जोड़ा