2011-02-26 15 views
6

का उपयोग करके मैं फेसबुक अनुरोध बनाने के लिए "अनुरोध संवाद" का उपयोग कर रहा हूं। उपयोगकर्ता को प्राप्त करने के लिए अनुरोध कि अनुरोध भेजे गए थे, मुझे ग्राफ़ एपीआई का उपयोग कर अनुरोध ऑब्जेक्ट तक पहुंचने की आवश्यकता है। मैंने अनुरोध अनुमति प्राप्त करने के लिए उचित (read_requests और user_about_me) लगने वाली अधिकांश अनुमति सेटिंग्स की कोशिश की है, लेकिन इसके बजाय मुझे प्रतिक्रिया में झूठा लगता है। क्या मैं गलत अनुमतियों का उपयोग कर रहा हूं?फेसबुक एपीआई: अनुरोध आईडी के लिए अनुरोध ऑब्जेक्ट प्राप्त करें - अनुरोध भेजे गए खाते में लॉग इन करें। "अनुरोध संवाद" API

मैं अनुरोध से भेजे गए खाते से ग्राफ़ एपीआई का उपयोग कर अनुरोध ऑब्जेक्ट तक पहुंचने में सक्षम हूं।

http://developers.facebook.com/docs/reference/dialogs/requests/

वापसी डाटा - एक अल्पविराम से अलग किए request_ids बनाए गए की । यह जानने के लिए कि अनुरोध कौन से भेजे गए थे , आपको अनुरोध अनुरोध द्वारा पहचाने गए प्रत्येक अनुरोध ऑब्जेक्ट के लिए जानकारी के माध्यम से लूप करना चाहिए।

+0

क्या आप जो सटीक कॉल कर रहे हैं और आउटपुट आपको प्राप्त कर सकते हैं? –

+0

'GET/RequestID /' अनुरोध ऑब्जेक्ट के बजाय अनुमति 'read_requests' या 'user_about_me' के साथ ग्राफ़ एपीआई कॉल गलत है। – ak7

+0

लक्षित उपयोगकर्ताओं का उपयोग करने वाली कोई भी युक्तियां क्या हो सकती हैं? क्या हम नहीं जानते कि वे साइन इन करते समय किसके साथ मित्र हैं और हम मौजूदा मित्रों fbids बनाम अपने दोस्तों की सूची को सत्यापित कर सकते हैं? – Kevin

उत्तर

4

मैं अपने आप को इस सवाल का कुछ समय पहले पूछ रहा है:
कैसे सभी अनुरोधों मुझे द्वारा भेजा पुनः प्राप्त करने के?

जवाब: आप नहीं कर सकते!
आपके पास दो विकल्प:

  1. स्टोर request_id लौटे जब उपयोगकर्ता अनुरोध भेजा, ताकि आप बाद में उन तक पहुँचने और रिसीवर को जानने का डेटा प्राप्त आप
  2. की जरूरत कर सकते हैं!

उपरोक्त का सबूत, आप friend_request तालिका देख सकते हैं। सूचकांक फ़ील्ड uid_to फ़ील्ड है!

0

यदि आप उन लोगों के उपयोगकर्ता आईडी को ढूंढना चाहते हैं जिन्हें आपने अभी अनुरोध किया है। तो फिर इस कोड को आप क्या जरूरत है:

var request = { 
    message: msg, 
    method: 'apprequests', 
    title: 'Select some of your friends' 
}; 
FB.ui(request, function (data) { 
    if (data && data.request_ids) { 

     // Get the uid of the person(s) who was/were invited 
     var uids = new Array(); 
     FB.api("/?ids=" + data.request_ids.join(), function(data2) { 
      for (i = 0; i<data.request_ids.length; i++) { 
       uids[i] = data2[data.request_ids[i]]['to']['id']; 
      } 
      # do something with uids here 
     }); 
    } 
}); 
0

अगर यह मदद करता है पता नहीं है, लेकिन यहाँ है कि कैसे मैं इसे संभाल।

जावास्क्रिप्ट:

function sendRequest() { 
     FB.ui({ 
      display: 'iframe',      
      method: 'apprequests', 
      title: 'Invite friends to join you', 
      message: 'Come play with me.' 
      }, 
      function (res) { 
       if (res && res.request_ids) { 
        var requests = res.request_ids.join(','); 
        $.post('FBRequest.ashx', 
         { request_ids: requests }, 
         function (resp) { });      
       } 
      }); 
     return false; 
    } 

सर्वर साइड (FBRequest.ashx):

 // get operation and data 
     var ids = HttpContext.Current.Request["request_ids"]; 

     // if we have data 
     if(ids != null) { 

      // make batch graph request for request details 
      var requestIds = ids.Split(',').Select(i => long.Parse(i)).ToList(); 
      var fbApp = new FacebookWebClient([AppId],[AppSecret]); 
      dynamic parameters = new ExpandoObject(); 
      parameters.ids = ids; 
      dynamic requests = fbApp.Get(parameters); 

      // cycle through graph results and do stuff 
      dynamic req = null; 
      for(int i=0;i<requestIds.Count;i++) { 
       try { 
        req = requests[requestIds[i].ToString()]; 
        // do stuff with request, save to DB, etc. 
       } catch (Exception ex) { 
        // error in finding request, continue... 
       } 
      } 
     } 
1

यह वह जगह है अगर आप इसे पता है कि Iframe मोड में चाहते हैं आप Iframe मोड किसी भी अधिक की जरूरत नहीं है के रूप में

function sendRequest() { 
     FB.ui({      
      method: 'apprequests', 
      title: 'Invite friends to join you', 
      message: 'Come play with me.' 
      }, 
      function (res) { 
       if (res && res.request_ids) { 
        var requests = res.request_ids.join(','); 
        $.post('FBRequest.ashx', 
         { request_ids: requests }, 
         function (resp) { });      
       } 
      }); 
     return false; 
    } 
0

आप वापसी आईडी के हिस्से के रूप में उपयोगकर्ता आईडी की सूची तक पहुंच सकते हैं

FB.ui({ 
    method: 'apprequest', 
    message: 'Use this thing', 
}, function(result){ 
     //a list of ids are in here 
     result.to; 
}); 
संबंधित मुद्दे