2013-04-23 12 views
7

Ich integriere Facebook auf meiner Anwendung, um Links von Websites zu teilen. Ich benutze den Feed-Dialog, um dies zu erreichen, und ich folge diesem Tutorial:
https://developers.facebook.com/docs/howtos/feed-dialog-using-ios-sdk/.nil resultURL nach erfolgreichem Posten mit FBWebDialogs (Facebook SDK 3.5)

Ich habe es geschafft, mich anzumelden und auf Facebook zu posten, aber ich wollte eine Nachricht hinzufügen, wenn der Beitrag erfolgreich war. Das Tutorial hat dies eingebaut, aber jedes Mal, wenn ich poste, sehe ich "Benutzer abgebrochen Geschichte Veröffentlichung." im Log, das ist die Nachricht, die angezeigt wird, wenn der Benutzer auf Abbrechen klickt. Außerdem habe ich mit dem Debugger bestätigt, dass der vom Handler empfangene Parameter resultURL auch bei erfolgreichen Posts immer Null ist.

Zuerst war es ein Konfigurationsproblem in meinem Facebook App, aber ich entschied mich, einen Test zu machen. Ich öffnete die RPSSample, die mit dem Framework kommt, fügte einen Abschluss-Handler zum presentRequestsDialogModallyWithSession Anruf in der clickInviteFriends Methode in der RPSFriendsViewController.m View-Controller und ich bekam eine Null resultURL auf erfolgreiche Beiträge dort auch.

Ich vermisse ich etwas?

Ich weiß, das 3.5 SDK-Version sehr neu ist, aber in der Dokumentation nach sollte ich eine gültige resultURL param nach der Einlieferung durch einen Facebook Web Dialog so sicher sein, immer bin ich nicht, ob es ein Fehler ist oder wenn ich Ich vermisse etwas Callback oder Handler irgendwo.

Nur für den Fall, das ist mein Aufruf an die Feed Web Dialog. Es kleinere Änderungen hat zu dem einen verglichen, die im Tutorial kommt (es ist tatsächlich einfacher)

- (void)publish: (EntityToShare *)entityToShare { 
NSMutableDictionary *params = 
[NSMutableDictionary dictionaryWithObjectsAndKeys: 
entityToShare.link, @"link", 
nil]; 

// Invoke the dialog 
[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 story."); 
    } else { 
     if (result == FBWebDialogResultDialogNotCompleted) { 
      // User clicked the "x" icon 
      NSLog(@"User canceled story 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 
       NSString *msg = [NSString stringWithFormat: 
            @"Posted story, id: %@", 
            [urlParams valueForKey:@"post_id"]]; 
       NSLog(@"%@", msg); 
       // Show the result in an alert 
       [[[UIAlertView alloc] initWithTitle:@"Result" 
              message:msg 
              delegate:nil 
            cancelButtonTitle:@"OK!" 
            otherButtonTitles:nil] 
        show]; 
      } 
     } 
    } 
}]; 
} 
+0

das gleiche Problem zu haben. –

Antwort

9

Wir haben eine Lösung für dieses an Ort und Stelle und wird bald herausgeschoben werden.

Edited:

Dies wird nun in der SDK-Release 3.5.1 es behebt hier Check out: https://developers.facebook.com/ios/

+0

Ich habe das gleiche Problem wie Diego. Wann erwarten Sie, dass es repariert wird? – user498388

+1

Großartig! Danke für die schnelle Antwort. Das hat mich verrückt gemacht. Also, ist das ein Serverproblem oder stimmt etwas mit dem SDK nicht? –

+1

Ich warte auf diese so dringend, ist es nur ein Api-Fehler, der meinen nativen Code nicht beeinflusst? – ValentiGoClimb

Verwandte Themen