2012-09-11 18 views
17

का उपयोग कर फेसबुक फीड पोस्ट में 5 छवियों को कैसे संलग्न करें मैं इस तरह की कुछ फीड को पोस्ट करने की कोशिश कर रहा हूं (यह शुरुआत में केवल एक छवि दिखाता है लेकिन जब आप "अधिक दिखाएं" पर क्लिक करते हैं तो आप सभी पांच देखें छवियों)फेसबुक आईओएस एसडीके 3.0

Post with 5 images

मेरे कोड इस तरह दिखता है:

NSMutableArray *properties = [[NSMutableArray alloc] initWithCapacity:5]; 
NSMutableArray *media = [[NSMutableArray alloc] initWithCapacity:5]; 
for (MyObject *object in self.myObjects) { 
    [properties addObject:[NSDictionary dictionaryWithObjectsAndKeys:object.name,@"text", 
                    object.link,@"href", nil]]; 
    NSString *imageUrlString = object.url.absoluteString; 
    [media addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"image",@"type", 
                   imageUrlString,@"src", 
                   object.link,@"href", nil]]; 
} 
NSData *propertyData = [NSJSONSerialization dataWithJSONObject:properties 
                 options:NSJSONWritingPrettyPrinted 
                 error:nil]; 
NSString *propertiesString = [[NSString alloc] initWithData:propertyData 
                encoding:NSUTF8StringEncoding]; 
NSData *mediaData = [NSJSONSerialization dataWithJSONObject:media 
                options:NSJSONWritingPrettyPrinted 
                 error:nil]; 
NSString *mediaString = [[NSString alloc] initWithData:mediaData 
               encoding:NSUTF8StringEncoding]; 
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:myAppID, @"app_id", 
                    link, @"link", 
                    name, @"name", 
                    caption, @"caption", 
                    propertiesString, @"properties", 
                    mediaString, @"media", 
                    description, @"description", nil]; 
[FBRequestConnection startWithGraphPath:@"me/feed" 
          parameters:params 
          HTTPMethod:@"POST" 
         completionHandler:completionHandler]; 

यह केवल पदों एक छवि है, लेकिन मैं उन सभी को 5 पोस्ट करने के लिए की जरूरत है।

संपादित करें: हम पहले से ही एक पोस्ट में 5 छवियों को जेन्रेन संलग्न पुस्तकालय के माध्यम से पोस्ट कर रहे हैं, इसलिए यह करने योग्य है!

+2

एक के लिए 5 छवियों कम्बाइन तो अमेरिकन प्लान –

+0

प्रत्येक छवि में इंगित करने के लिए एक अलग यूआरएल है में है कि छवि पोस्ट आदेश तो एन है ओ मेरे लिए एक छवि के संयोजन में बिंदु। – Moxy

+0

क्या फेसबुक पर मौजूदा पोस्ट से स्क्रीनशॉट है - या यह सिर्फ यह है कि आप इसे किस तरह दिखाना चाहते हैं? – CBroe

उत्तर

0

ठीक नया विचार; आप उनमें से सभी को लूप में कैसे भेजते हैं, लेकिन आप स्टेटस-टेक्स्ट और बाकी सब कुछ वही रखते हैं। यह संभव नहीं है कि फेसबुक फिर उन्हें 1 पद में जोड़ता है?

+0

मुझे फेसबुक पर विभिन्न यूआरएल के साथ क्लिक करने योग्य होने की आवश्यकता है – Moxy

+1

आह ठीक है, यही कारण है कि आप उन्हें गठबंधन नहीं कर सकते हैं। हम्म मैं इसे देखने की कोशिश करूंगा –

+0

ठीक नया विचार; आप उनमें से सभी को लूप में कैसे भेजते हैं, लेकिन आप स्टेटस-टेक्स्ट और बाकी सब कुछ वही रखते हैं। यह संभव नहीं है कि फेसबुक फिर उन्हें 1 पद में जोड़ता है? –

0

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

आप अधिक तस्वीरें पोस्ट कर सकते हैं, लेकिन वे डिफ़ॉल्ट रूप से सुनिश्चित नहीं होंगे। फेसबुक एक "अधिक" लिंक जोड़ देगा, हालांकि वे से भी दूर हो सकते हैं।

स्रोत: How to publish a wall post with 2 pictures

तो आप एक से अधिक छवियों के साथ बर्तन को खिलाने के लिए सक्षम नहीं होगा। एक छवि में 5 छवियों को गठबंधन करने का बेहतर तरीका है। वहाँ से https://developers.facebook.com/docs/opengraph/usergeneratedphotos/

नमूना कोड:

+0

यह वास्तव में अभी संभव है क्योंकि हम इसे Engage लाइब्रेरी के माध्यम से उत्पन्न कर सकते हैं (हम नहीं जानते कि वे इसे कैसे करते हैं)। लेकिन हम फेसबुक आईओएस एसडीके में माइग्रेट कर रहे हैं इसलिए मुझे इसे करने का एक तरीका चाहिए। – Moxy

+0

फेसबुक लाइब्रेरी अब इसे अनुमति नहीं देता है। देखें कि Engage लाइब्रेरी यह कैसे कर रही है। हो सकता है कि वे 5 छवियों से एक छवि बना रहे हों। लेकिन मैंने इस पुस्तकालय का उपयोग किया है। तो मुझे इसके बारे में बहुत कुछ पता नहीं है। –

+0

उस पोस्ट में प्रत्येक छवि क्लिक करने योग्य है और एक अलग यूआरएल है इसलिए यह एक छवि नहीं है। वे 5 हैं! व्यस्त एक अलग एपीआई प्रदान करें ताकि मैं नहीं जान सकूं कि वे इसे कैसे प्राप्त करते हैं। – Moxy

0

आप एक ओपन ग्राफ़ कार्रवाई में एक से अधिक चित्र अपलोड कर सकते को यहां बताए गए

https://graph.facebook.com/me/nyccookbook:cook? 
    recipe=http://www.yourdomain.com/pizza.html& 
    image[0][url]=http://www.yourdomain.com/images/my_camera_pizza_pic.jpg& 
    image[0][user_generated]=true& 
    image[1][url]=http://www.yourdomain.com/images/my_camera_soda_pic_2.jpg& 
    image[1][user_generated]=true& 
    access_token=YOUR_ACCESS_TOKEN 
+0

यह पदों के लिए नहीं है कार्यों के लिए है। – Moxy

+0

सही! हालांकि ओपन ग्राफ तेजी से कॉन्फ़िगर करने योग्य तरीकों से ऐसा करने के लिए एक अच्छा दीर्घकालिक दृष्टिकोण है। –

+0

हमारे पास पहले से ही विभिन्न क्रियाएं लागू की गई हैं, लेकिन हमारे पास एक ऐसा मामला है जिसमें हमें विभिन्न कार्यवाही के साथ एक साधारण फ़ीड पोस्ट की आवश्यकता है। और चूंकि हम Engage (हम अभी भी इसे वेब साइट पर उपयोग करते हैं) के लिए उपयोग करते हैं, ऐसा करने के बाद, हम इसे एसडीके का उपयोग करना चाहते हैं। – Moxy

0

मुझे लगता है कि बैच अनुरोध आप जो खोज रहे हैं कर रहे हैं।

इस link से:

अपने आवेदन में एक भी बार में डेटा काफी मात्रा में उपयोग करने की क्षमता की जरूरत है - या आप एक ही बार में कई वस्तुओं में परिवर्तन करने की जरूरत है, यह अक्सर अधिक कुशल है के बजाय अपने प्रश्नों को बैच करें एकाधिक व्यक्तिगत HTTP अनुरोध करें।

इसे सक्षम करने के लिए, ग्राफ़ एपीआई बैचिंग का समर्थन करता है। बैचिंग आपको एक ही HTTP अनुरोध में कई संचालन के लिए निर्देश पास करने के लिए की अनुमति देता है। आप संबंधित परिचालन (नीचे दिए गए अनुभाग में वर्णित) के बीच निर्भरताओं को भी निर्दिष्ट कर सकते हैं। फेसबुक आपके प्रत्येक समानांतर में स्वतंत्र संचालन को संसाधित करेगा और अनुक्रमिक रूप से आपके आश्रित संचालन को संसाधित करेगा। एक बार सभी परिचालन पूरा हो जाने के बाद, समेकित प्रतिक्रिया आपको वापस भेज दी जाएगी और HTTP कनेक्शन बंद हो जाएगा।

...

अपलोड कर रहा है बाइनरी डेटा

बाइनरी डेटा बैच एपीआई अनुरोध के बहुखण्डीय/माइम भाग के हिस्से के रूप में निर्दिष्ट किया जा सकता है। बैच ग्राफ एपीआई बैच कॉल के हिस्से के रूप में कई बाइनरी आइटम अपलोड करने की अनुमति देता है। ऐसा करने के लिए, आपको अपने अनुरोध पर सभी बाइनरी आइटम मल्टीपार्ट/माइम अनुलग्नक के रूप में जोड़ने की आवश्यकता है, और ऑपरेशन में "संलग्न_फाइल" संपत्ति का उपयोग करके अपने बाइनरी आइटम को संदर्भित करने के लिए प्रत्येक ऑपरेशन की आवश्यकता है। "संलग्न_फाइल" संपत्ति मान में अटैचमेंट नामों की अल्पविराम से अलग सूची ले सकती है।

आईओएस एसडीके का उपयोग करके बैच अनुरोध बनाने के लिए एक ट्यूटोरियल में link है।

1

आपको सीधे फेसबुक कनेक्ट एपीआई का उपयोग करने की आवश्यकता होगी: आईओएस एसडीके इस तरह की कार्यक्षमता का पर्दाफाश नहीं करता है।

आप Graph Photo API जो एक छवि अपलोड करने के लिए इस URL पता चलता है की प्रकाशन खंड पर एक नजर है चाहिए (publish_stream क्रेडेंशियल के लिए पूछने के लिए मत भूलना):

POST https://graph.facebook.com/USER_ID/photos 

message=[optional description] 
source=[the image's data] 
place=[optional image's location] 

आईओएस फेसबुक कनेक्ट एसडीके के साथ कि हमें इस फोन, यह देखते हुए कि आप एक फेसबुक उदाहरण कहा जाता है फेसबुक और एक UIImage उदाहरण कहा जाता छवि होगा:

[facebook requestWithMethodName:@"/USER_ID/photos" 
         andParams:[NSDictionary dictionaryWithObjectsAndKeys: 
           UIImageJPEGRepresentation(image, 0.7), @"source", 
           @"My puppy is so cute!!!", @"message", 
           nil] 
        andHttpMethod:@"POST" 
        andDelegate:self];