2011-05-09 15 views
6

के साथ फेसबुक अनुरोध 2.0 का उपयोग करना मैं एसडीके के साथ बुकमार्क गिनती फ़ील्ड को अपडेट करने का प्रयास कर रहा हूं लेकिन अभी तक कोई सफलता नहीं मिली है।सी # एसडीके

किसी मुझे बता सकते हैं क्या वर्गों मैं नीचे दिए गए लिंक के लिए इसी तरह कुछ करने के लिए का दृष्टांत की जरूरत है:

http://developers.facebook.com/blog/post/464

नोट:

लिंक बुकमार्क गिनती की स्थापना की और इसे हटाने के लिए कैसे प्रदर्शित करता है कि । मैं एसडीके के साथ ऐसा करने में सक्षम होना चाहता हूं, किसी भी मदद की सराहना की जाएगी।

उत्तर

6

ऐसा करने के लिए, सबसे पहले आपको आप ऐप के पहुंच टोकन प्राप्त करने की जरूरत है:

private string GetAppAccessToken() { 

     var fbSettings = FacebookWebContext.Current.Settings; 

     var accessTokenUrl = String.Format("{0}oauth/access_token?client_id={1}&client_secret={2}&grant_type=client_credentials", 
      "https://graph.facebook.com/", fbSettings.AppId, fbSettings.AppSecret); 

     // the response is in the form: access_token=foo 
     var accessTokenKeyValue = HttpHelpers.HttpGetRequest(accessTokenUrl); 
     return accessTokenKeyValue.Split('=')[1]; 
    } 

योग्य कुछ बातें उपरोक्त विधि के बारे में गौर करने योग्य

  • मैं उपयोग कर रहा हूँ नेट HttpWebRequest ऐप access_token को पकड़ने के लिए फेसबुक सी # एसडीके की बजाय (संस्करण 5.011 आरसी 1 के रूप में) एसडीके एक सीरियलाइजेशन अपवाद फेंकता है। ऐसा लगता है कि एसडीके फेसबुक से जेएसओएन प्रतिक्रिया की उम्मीद कर रहा है, लेकिन फेसबुक फॉर्म में एक्सेस टोकन देता है: access_token = some_value (जो वैध JSON नहीं है)।
  • HttpHelpers.HttpGetRequest बस .Net's HttpWebRequest का उपयोग करता है। तुम बस के रूप में अच्छी तरह से WebClient उपयोग कर सकते हैं, लेकिन जो कुछ भी आप चुनते हैं, आप अंततः इस http अनुरोध बनाना चाहते:

    प्राप्त https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials HTTP/1.1 मेजबान: graph.facebook.com

अब जबकि आपके पास

public string GenerateAppRequest(string fbUserId) { 
    var appAccessToken = GetAppAccessToken(); 
    var client = new FacebookClient(appAccessToken); 
    dynamic parameters = new ExpandoObject(); 
    parameters.message = "Test: Action is required"; 
    parameters.data = "Custom Data Here"; 

    string id = client.Post(String.Format("{0}/apprequests", fbUserId), parameters); 
    return id; 
} 

इसी तरह, इस प्रकार आप एक उपयोगकर्ता के अनुप्रयोग के सभी अनुरोधों को पुनः प्राप्त कर सकते हैं:: नोट एप्लिकेशन ACCESS_TOKEN पुनः प्राप्त करने के लिए एक विधि है, तो आप इस प्रकार हैं (यहाँ मैं फेसबुक सी # SDK का उपयोग) एक ऐप अनुरोध उत्पन्न कर सकते हैं: आप probab ly "गतिशील" वापस नहीं करना चाहते हैं, लेकिन मैंने इसे सादगी के लिए यहां इस्तेमाल किया।

public dynamic GetAppRequests(string fbUserId) { 
     var appAccessToken = GetAppAccessToken(); 
     var client = new FacebookClient(appAccessToken); 

     dynamic result = client.Get(String.Format("{0}/apprequests", fbUserId)); 
     return result;  
    } 

मुझे उम्मीद है कि इससे मदद मिलती है।

+0

पहुंच/पूछताछ तक पहुंच मानती है कि उपयोगकर्ता ने आपके आवेदन को प्रमाणित/स्थापित किया है, सही? – typeoneerror

+0

मुझे विश्वास नहीं है कि उपयोगकर्ता को आपके ऐप को प्रमाणित करना होगा। फेसबुक के दस्तावेज़ीकरण के मुताबिक, आपको केवल अपने ऐप एक्सेस टोकन की आवश्यकता है: http://developers.facebook.com/docs/reference/api/user/ –

+0

नहीं। मेरे ऐप एक्सेस टोकन के साथ परीक्षण किया गया और अभी भी "पैरामीटर आईडी में सभी उपयोगकर्ताओं को TOS स्वीकार कर लिया होगा" – typeoneerror