0

我正在使用最新的 facebook sdk 通过提要对话框共享功能在 facebook 上共享短信。在 facebook 上共享文本消息工作正常,但我面临的问题是单击共享后再次出现登录对话框,即使我有有效的会话和登录用户。

在此处输入图像描述

- (BOOL)openSessionAllowingLoginUI:(BOOL)allowLoginUI
{
NSArray *permissions = [[NSArray alloc] initWithObjects:@"offline_access",@"publish_actions",@"read_stream", nil];

return [FBSession openActiveSessionWithPublishPermissions:permissions
                                          defaultAudience:FBSessionDefaultAudienceOnlyMe 
                                             allowLoginUI:YES
                                        completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {

                                            DLog(@"Facebook Error : %@", error);
                                            if (!error) {
                                                [self publishPost:self.shareMessage andLink:self.shareLink];
                                            }
                                        }];
}


- (void)publishPost:(NSString *)message andLink:(NSString *)url
{
// Put together the dialog parameters
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                               @"sample", @"name",
                               self.shareMessage, @"description",
                               self.shareLink, @"link",
                               nil];

[FBWebDialogs presentFeedDialogModallyWithSession:nil
                                       parameters:params
                                          handler:
 ^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
     if (error) {
         // Error launching the dialog or publishing a story.
         NSLog(@"Error publishing post.");
     } else {
         if (result == FBWebDialogResultDialogNotCompleted) {
             // User clicked the "x" icon
             NSLog(@"User canceled post publishing.");
         } else {
             // Handle the publish feed callback
             NSDictionary *urlParams = [self parseURLParams:[resultURL query]];
             if (![urlParams valueForKey:@"post_id"]) {
                 // User clicked the Cancel button
                 NSLog(@"User canceled story publishing.");
             } else {

                 // User clicked the Share button
                 [self displaySuccessMessage];
             }
         }
     }
 }];
 }
4

1 回答 1

0

试着打电话

openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:

其次是

requestNewPublishPermissions:defaultAudience:completionHandler:

而不是打电话

openActiveSessionWithPublishPermissions:defaultAudience:allowLoginUI:completionHandler:
于 2014-05-16T13:06:08.017 回答