कृपया इस कोड को देखते हैं, यह मदद मिल सकती है
postParams=
[@{
@"link" :link,
@"picture" :picture link , //[NSString stringWithFormat:@"%@%@",KBaseImageUrl,@"/assets/img/logo-small.jpg"],
@"name" : @“name”,
@"caption" : caption title,
@"description" :discription
} mutableCopy];
title=[[arrayEventInfo valueForKey:@"info"] valueForKey:@"eventname"];
if ([[FBSession activeSession]isOpen])
{
if ([[[FBSession activeSession]permissions]indexOfObject:@"publish_actions"] == NSNotFound)
{
[[FBSession activeSession] requestNewPublishPermissions:[NSArray arrayWithObject:@"publish_action"] defaultAudience:FBSessionDefaultAudienceFriends
completionHandler:^(FBSession *session,NSError *error){
// If permissions granted, publish the story
[FBRequestConnection
startWithGraphPath:@"me/feed"
parameters:postParams
HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection,
id result,
NSError *error)
{
NSString *alertText;
if (error)
{
alertText = [NSString stringWithFormat:
@"error: domain = %@, code = %d",
error.domain, error.code];
}
else
{
alertText = @"Posted successfully on your wall.";//[NSString stringWithFormat:
//@"Posted action, id: %@",
// result[@"id"]];
}
//Show the result in an alert
[[[UIAlertView alloc] initWithTitle:title
message:alertText
delegate:self
cancelButtonTitle:@"OK" otherButtonTitles:nil]show];
[FBSession.activeSession closeAndClearTokenInformation];
[FBSession.activeSession close];
}];
UIActivityIndicatorView *activityView=(UIActivityIndicatorView*)[self.view viewWithTag:111];
if(activityView)
{
[activityView removeFromSuperview];
}
[self.view setUserInteractionEnabled:YES];
[self.navigationController.navigationBar setUserInteractionEnabled:YES];
}];
}else
{
// If permissions granted, publish the story
[FBRequestConnection
startWithGraphPath:@"me/feed"
parameters:postParams
HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection,
id result,
NSError *error)
{
NSString *alertText;
if (error)
{
alertText = [NSString stringWithFormat:
@"error: domain = %@, code = %d",
error.domain, error.code];
}
else
{
alertText = @"Posted successfully on your wall.";//[NSString stringWithFormat:
//@"Posted action, id: %@",
// result[@"id"]];
}
//Show the result in an alert
[[[UIAlertView alloc] initWithTitle:title
message:alertText
delegate:self
cancelButtonTitle:@"OK" otherButtonTitles:nil]show];
[FBSession.activeSession closeAndClearTokenInformation];
[FBSession.activeSession close];
}];
}
}
else
{
[FBSession openActiveSessionWithPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
defaultAudience:FBSessionDefaultAudienceOnlyMe
allowLoginUI:YES
completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
if (!error && status == FBSessionStateOpen) {
if (!error)
{
// If permissions granted, publish the story
[FBRequestConnection
startWithGraphPath:@"me/feed"
parameters:postParams
HTTPMethod:@"POST"
completionHandler:^(FBRequestConnection *connection,
id result,
NSError *error)
{
NSString *alertText;
if (error)
{
alertText = [NSString stringWithFormat:
@"error: domain = %@, code = %d",
error.domain, error.code];
}
else
{
alertText = @"Posted successfully on your wall.";//[NSString stringWithFormat:
//@"Posted action, id: %@",
// result[@"id"]];
}
//Show the result in an alert
[[[UIAlertView alloc] initWithTitle:title
message:alertText
delegate:self
cancelButtonTitle:@"OK" otherButtonTitles:nil]show];
[FBSession.activeSession closeAndClearTokenInformation];
[FBSession.activeSession close];
}];
}
}else{
NSLog(@"%@",[error description]);
UIActivityIndicatorView *activityView=(UIActivityIndicatorView*)[self.view viewWithTag:111];
if(activityView)
{
[activityView removeFromSuperview];
}
[self.view setUserInteractionEnabled:YES];
[self.navigationController.navigationBar setUserInteractionEnabled:YES];
}
}];
}
स्रोत
2014-01-29 05:00:30
क्षमा करें, लेकिन यह अपने प्रश्न का उत्तर नहीं है। लॉगिन प्रक्रिया ठीक काम करती है। मैं फेसबुक-लॉगबबटन दबाए जाने के बाद हर बार "आप पहले से ही YOUR_APP" स्क्रीन को दिखाना नहीं चाहता हूं। –
यदि उपयोगकर्ता पहले से ही लॉग इन है तो उन्हें "लॉगिन" बटन दबाया नहीं जाना चाहिए। उन्हें सीधे ऐप के "मांस" में लॉगिन प्रक्रिया के माध्यम से जाना चाहिए। अगर वे एक फेसबुक बटन देखते हैं तो इसे "लॉगआउट" कहना चाहिए। – Fogmeister
मुझे लगता है कि आप नहीं समझते कि मेरी समस्या क्या है: 1. उपयोगकर्ता फेसबुक के साथ पहली बार लॉग इन करता है, अनुमति स्वीकार करता है। 2. उपयोगकर्ता लॉगआउट कार्रवाई पर क्लिक करता है, टोकन साफ़ हो जाता है। 3. उपयोगकर्ता लॉगिन करेगा -> यहां वह फेसबुक बटन पर फिर से क्लिक करता है, लेकिन अब "प्राधिकरण स्क्रीन" दिखाई नहीं देनी चाहिए। क्योंकि वह पहले से ही ऐप को अधिकृत करता है। –