2012-08-07 10 views
13

मैं नए (बीटा) फेसबुक ios sdk 3.0 का उपयोग कर एक ऐप में फेसबुक एकीकरण जोड़ने की कोशिश कर रहा हूं। मैं फेसबुक पर स्टेटस अपडेट पोस्ट करना चाहता हूं। मैंने फेसबुक पर लॉगिन करने के लिए एक FBLoginView का उपयोग किया। मैंने फेसबुक पर निर्देश दिए अनुसार मेरी ऐप आईडी को प्लेस्ट में रखा है। मैंने फेसबुक पर पोस्ट करने के लिए कुछ कोड डाला।आईओएस-फेसबुक एसडीके 3.0 त्रुटि 5 पोस्टिंग स्थिति अपडेट करते समय

(void)viewDidLoad 
{ 
[super viewDidLoad]; 
NSArray *perms; 
perms = [NSArray arrayWithObjects:@"status_update", nil]; 
FBLoginView *loginview = 
[[FBLoginView alloc] initWithPermissions:perms]; 

loginview.frame = CGRectOffset(loginview.frame, 5, 5); 
loginview.delegate = self; 

[self.view addSubview:loginview]; 
// Do any additional setup after loading the view, typically from a nib. 

} 

- (IBAction)poststatus:(UIButton *)sender { 
NSString *message = [NSString stringWithFormat:@"Test staus update"]; 

[FBRequestConnection startForPostStatusUpdate:message 
          completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { 

           [self showAlert:message result:result error:error]; 

          }]; 
} 
- (void)showAlert:(NSString *)message 
     result:(id)result 
     error:(NSError *)error { 

NSString *alertMsg; 
NSString *alertTitle; 
if (error) { 
    alertMsg = error.localizedDescription; 
    alertTitle = @"Error"; 
} else { 
    NSDictionary *resultDict = (NSDictionary *)result; 
    alertMsg = [NSString stringWithFormat:@"Successfully posted '%@'.\nPost ID: %@", 
       message, [resultDict valueForKey:@"id"]]; 
    alertTitle = @"Success"; 
} 

UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:alertTitle 
                message:alertMsg 
                delegate:nil 
              cancelButtonTitle:@"OK" 
              otherButtonTitles:nil]; 
[alertView show]; 
} 

अजीब बात यह है कि यह कोड एक बार काम करता है। उपयोगकर्ता को पहली बार प्रमाणीकृत करने के बाद, मैं एक स्टेटस अपडेट सफलतापूर्वक पोस्ट कर सकता हूं। उसके बाद, सभी बाद के प्रयास FBiOSSDK त्रुटि 5 (कंसोल में, त्रुटि: HTTP स्थिति कोड: 400) के साथ विफल हो जाएंगे। इसे ठीक करने का एकमात्र तरीका फेसबुक खाते से ऐप को निकालना और पुनः प्रमाणित करना है। मुझे यकीन नहीं है कि समस्या क्या है। मैंने समाधान के लिए ऑनलाइन देखा लेकिन कुछ भी नहीं मिला। अगर कोई इसे ठीक करने के बारे में जानता है, तो कृपया मुझे बताएं। धन्यवाद

+0

एक ही कोड मिला। बदले ऐप_आईडी के साथ शानदार फेसबुक नमूना परियोजना के साथ खेलना। शायद यह संबंधित है ... – Centurion

+1

मेरा मानना ​​है कि समस्या कुछ कारणों से है, आप एक निश्चित अवधि में एक ही स्थिति अद्यतन पोस्ट नहीं कर सकते हैं। यदि आप एक ही स्थिति अद्यतन पोस्ट करने का प्रयास कर रहे हैं, तो इसे प्रत्येक पोस्ट को बदलने का प्रयास करें – benjih555

+1

समस्या मिली। वापस NSError के userInfo में प्रतिक्रिया संदेश "फ़ीड कार्रवाई अनुरोध सीमा तक पहुंच गया" है। आगे बढ़ रहा है ... – Centurion

उत्तर

7

ऐसा लगता है कि इस मुद्दे का कोई जवाब नहीं हो सकता है। मैंने एसडीके के साथ आने वाले एफबी नमूने की जांच की है, इन उदाहरणों में भी वही त्रुटि होती है। तो इसका मतलब है कि कुछ स्टेटस अपडेट (15-20) फेसबुक के बाद उस विशेष उपयोगकर्ता के लिए सीमा तक पहुंच जाती है। यदि आप उस उपयोगकर्ता के लिए लॉग-आउट करते हैं और किसी अन्य उपयोगकर्ता के रूप में लॉग-इन करते हैं, तो आप सफलतापूर्वक पोस्ट कर सकते हैं।

यदि मुझे सेटिंग्स को सीमित करने के लिए कोई एक्सटेंशन मिलेगा तो मैं जवाब दूंगा। इसके अलावा फेसबुक एक ही पोस्ट के लिए अनुमति नहीं देता है।

+0

ऐसा लगता है कि फेसबुक ... इन प्रतिबंधों को दस्तावेज करना चाहिए .. – benjih555

+0

यह सच है ... लेकिन हम बहस नहीं कर सकते .. :) –

10

com.facebook.sdk त्रुटि 5 फेसबुक आईओएस एसडीके के साथ काम करते समय हमेशा परेशान होता है। अधिकांश बार यह कंसोल में addional के साथ आता है त्रुटि: HTTP स्थिति कोड: 400। यह एक धारणा है कि फेसबुक आईओएस एसडीके में एक बग है जो इस त्रुटि को यादृच्छिक रूप से उत्पन्न करता है। मुझे लगता है कि यह त्रुटि कुछ निश्चित कारणों से होती है और एसडीके होने पर त्रुटि का वास्तविक कारण प्रदान नहीं करता है।

कई संभावित कारण

  • एसडीके में हर अनुरोध पूरा होने के ब्लॉक है कि हम वास्तव में completionHandler में तर्क के रूप में पारित के साथ पूरा किया है। यह त्रुटि तब होती है जब कोई ब्लॉक प्रगति पर है और एक और अनुरोध किया गया है। एक साधारण उदाहरण हो सकता है यदि आपने कुछ बटन एक्शन पर फेसबुक पर पोस्ट करने का अनुरोध लिखा है (startForPostStatusUpdate: :)। एकल बटन टैप पर यह ठीक काम करेगा लेकिन यदि आप बटन पर दो बार टैप करेंगे तो यह इस त्रुटि को फेंक देगा com.facebook.sdk त्रुटि 5

  • यदि आप अपना वर्तमान सत्र खोले जाने पर पोस्ट करने का प्रयास कर रहे हैं। जैसे एक बार जब Facebook के साथ में साइन इन तब तो फिर से खोलना एप्लिकेशन समाप्त हो और उसके बाद फेसबुक, परिणाम पर साझा करने का प्रयास -> com.facebook.sdk त्रुटि 5. इस मामले में का उपयोग कर

  • फेसबुक के लिए एक ही स्थिति की अनुमति नहीं देते सत्र फिर से खोलना करने की कोशिश बार-बार पोस्ट किया जाए, उन्हें लगता है कि यह किसी प्रकार का स्पैम हो सकता है यदि आप स्थिति अपडेट करने का प्रयास कर रहे हैं और आपने स्ट्रिंग को कड़ी मेहनत की है तो कहें कि "यह एक परीक्षण स्थिति अद्यतन है" आप बार-बार प्रस्तुत कर रहे हैं। 5 से 10 प्रयासों के बाद वे आपको और करने की अनुमति नहीं देंगे। Com.facebook.sdk त्रुटि का परिणाम 5. यदि यह परिदृश्य है तो आपको अपनी स्थिति स्ट्रिंग बदलनी चाहिए और अद्यतन करने का प्रयास करना चाहिए।

  • फेसबुक ने किसी विशेष उपयोगकर्ता के लिए एसडीके का उपयोग करके स्थिति पोस्ट करने की सीमा निर्धारित की है। उदाहरण के लिए यदि आप स्थिति अपडेट करने का प्रयास कर रहे हैं और आपने किया है तो 15 से 20 स्थिति अपडेट कहें। वे आपको अधिक परिणामस्वरूप करते हैं नहीं होते -> com.facebook.sdk त्रुटि 5. में इस परिदृश्य अपने Facebook खाते से एप्लिकेशन unauthorize और यह पुनः प्राधिकृत या अन्य फेसबुक खाते

0

उपयोग एक प्रॉक्सी का उपयोग करने की कोशिश करने की कोशिश!

अमेरिकन प्लान ios एसडीके = graph.facebook.com/....? ACCESS_TOKEN पर एक HTTP अनुरोध करने के लिए सिर्फ एक चादर है .....

तो आप आसानी से अनुरोध को दोहराने या एक HTTP प्रॉक्सी का उपयोग कर सकते वास्तविक सर्वर उत्तर देखने के लिए (जो त्रुटि 5 नहीं है!)।

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