web-dev-qa-db-fra.com

SLServiceTypeFacebook setInitialText ne fonctionne pas

J'essaie de partager un texte sur Facebook avec SLServiceTypeFacebook sur IOS 8.3. Mais la zone de texte contextuelle affichée vide. Je veux qu'il soit affiché avec du texte. Ci-dessous, vous pouvez voir le code que j'utilise pour cela.

 if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) 
 {
       SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

       [controller setInitialText:@"First post from my iPhone app"];
       [self presentViewController:controller animated:YES completion:Nil];
  }
46
birdcage

Il semble y avoir un problème après avoir installé la dernière mise à jour de l'application Facebook (v29). Le supprimer "corrige" le problème.

https://developers.facebook.com/bugs/1632385646995079/https://developers.facebook.com/bugs/962985360399542/

Mise à jour (3 juin 2015)

Bien. Il semble que la nouvelle politique de Facebook indique que le préremplissage d'un message via setInitialText: est une violation de préremplissage.

https://developers.facebook.com/docs/apps/review/prefill

Donc, je suppose que la seule façon de partager du contenu à partir de maintenant est la FBSDKShareDialog

https://developers.facebook.com/docs/sharing/ios

32
nnarayann

Je dois aimer l'efficacité de Facebook. Je suis un peu en retard mais peut aider quelqu'un.

#import <FBSDKShareKit/FBSDKShareKit.h>

FBSDKShareLinkContent  *content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = self.urlForSocialMedia;
content.contentDescription = self.textForFB;
content.contentTitle = @"Results.";

[FBSDKShareDialog showFromViewController:self
                             withContent:content
                                delegate:self];
1
PhillipOReilly

Avant setInitialText, ajoutez # avant ce test. Code ci-dessous. Ça marche pour moi 

SLComposeViewController *mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];

    [mySLComposerSheet setInitialText:@"#myInitialTextIsHere"];
    [mySLComposerSheet addURL:[NSURL URLWithString:strURL]];

    [mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {

        switch (result) {
            case SLComposeViewControllerResultCancelled:
                NSLog(@"Post Canceled");
                break;
            case SLComposeViewControllerResultDone:
                NSLog(@"Post Sucessful");
                break;

            default:
                break;
        }
    }];

    [self presentViewController:mySLComposerSheet animated:YES completion:nil];
0
Parveen Akter