मुझे फेसबुक 3.1 ios sdk में प्रकाशित अनुमतियों के साथ लॉग इन करने में समस्या हो रही है।फेसबुक आईओएस 3.1 एसडीके लॉगिन प्रकाशित अनुमति कॉलबैक के साथ लॉगिन
मेरे ऐप में एक वीडियो साझा करने के लिए एक बटन है, और जब उपयोगकर्ता इसे क्लिक करता है तो मैं मूल + प्रकाशन अनुमति जोड़ना चाहता हूं। मैं समझता हूँ के रूप में, मैं दो कॉल करना है -
openActiveSessionWithReadPermissions
, और फिरreauthorizeWithPublishPermissions
यहाँ कोड मैं अब का उपयोग कर रहा है:
//Opens a Facebook session and optionally shows the login UX.
- (void)openSessionForReadPermissions
{
[FBSession openActiveSessionWithReadPermissions:nil
allowLoginUI:YES
completionHandler:
^(FBSession *session,
FBSessionState state, NSError *error) {
//this is called even from the reauthorizeWithPublishPermissions
if (state == FBSessionStateOpen && !error)
{
[self openSessionForPublishPermissions];
}
else if (state == FBSessionStateClosedLoginFailed)
{
[FBSession.activeSession closeAndClearTokenInformation];
[[NSNotificationCenter defaultCenter] postNotificationName:FBLoginErrorNotification object:session];
}
}];
}
-(void)openSessionForPublishPermissions
{
NSArray* permissions = [NSArray arrayWithObject:@"publish_stream"];
[[FBSession activeSession] reauthorizeWithPublishPermissions:permissions
defaultAudience:FBSessionDefaultAudienceFriends
completionHandler:
^(FBSession *session, NSError *error)
{
if (!error)
{
[[NSNotificationCenter defaultCenter]
postNotificationName:FBLoginSuccessNotification
object:session];
}
else
{
[[NSNotificationCenter defaultCenter]
postNotificationName:FBLoginErrorNotification
object:session];
}
}];
}
मुझे लगता है कि देख openSessionForReadPermissions में ब्लॉक को दो बार कहा जाता है (एक बार FBSessionStateOpen के साथ और एक बार FBSessionStateOpenToken के साथ OpenSessionForPublishPermissions कॉल से विस्तारित), ए और जब मैं ऐप में लॉगिन करने का प्रयास करता हूं तो मुझे एक त्रुटिReauthorizeFailedReasonUserCancelled मिलता है (यदि आपने पहले सभी ऐप अनुमतियां हटा दी हैं)।
इस लॉगिन को लागू करने का सही तरीका क्या है? इस सुविधा को छोड़कर ऐप को फेसबुक लॉग-इन की आवश्यकता नहीं है, इसलिए लॉगिन प्रक्रिया एक ही बटन पुश पर होनी चाहिए।
धन्यवाद!
+1 हम एक ही मुद्दे से फंस गए हैं, खासकर जब मिश्रित अनुमति कॉल को हटा दिया गया है। –
reauthorizeWithPublishPermissions को कम किया गया है। इसके बजाय अनुरोध नया प्रकाशित करेंप्रमिशन का उपयोग करें। – John