22

Est-ce que quelqu'un sait comment placer le bouton "J'aime" de Facebook dans l'application iOS? J'ai essayé la méthode décrite dans ce blog post. Mais je n'aime pas vraiment cette méthode, car sa boîte de dialogue de connexion moche. Et, ce qui est plus important, cela permet à l'utilisateur de se connecter deux fois. Par exemple, l'utilisateur veut poster un message sur son mur s'il n'est pas connecté J'appelle standard FBLoginDialog, après que l'utilisateur a posté un message il peut vouloir pousser le bouton "like" et il doit se reconnecter - c'est vraiment une mauvaise expérience utilisateur .Bouton J'aime dans l'application iOS

Comment être? Comment puis-je donner à l'utilisateur une fonctionnalité "J'aime" dans mon application iOS?

+2

Ditto, FBConnect est l'une de mes raisons pour supprimer une application (oui, vraiment, il est laid ... _that_). – Emil

+1

Jetez un oeil à FacebookLikeView: https://github.com/brow/FacebookLikeView – Tom

+0

Il semble que Facebook a finalement décidé de permettre cela plus directement, via Open Graph. [Voir la documentation ici] (https://developers.facebook.com/docs/technical-guides/opengraph/built-in-actions/likes/) – Nate

Répondre

7

C'est en fait la seule façon de le faire. Il n'y a pas de bouton spécial iOS. Cependant, les bonnes nouvelles sont que juste aujourd'hui Facebook announced single sign in support for mobile apps. Cela devrait éliminer une partie du fardeau que l'utilisateur doit affronter pour se connecter à Facebook.

+0

Merci pour cette information. Mais je ne comprends pas comment "simple connexion" peut aider avec "j'aime" le bouton. J'ai vraiment confondu pourquoi l'API de Facebook ne fournit pas d'API pour le support complet des plugins sociaux (comme le bouton, bouton de partage) – iKiR

+2

Je dis que l'authentification unique aidera à l'utilisation de s'authentifier à facebook plusieurs fois. Facebook ne fournit pas une API similaire, car ils ne veulent pas que les applications de spam puissent forcer les gens à aimer les choses. Je pense que Facebook finirait par faire un bouton comme iOS, mais pour l'instant la version web est la seule solution autorisée. –

5

Il semble qu'il y ait un accord sur ne pas être en mesure de le faire. This question montre que vous pouvez, tout comme le FB Graph API documentation:

Vous pouvez commenter ou comme un objet qui a un/ou commentaires/connexion aime en postant à https://graph.facebook.com/OBJECT_ID/comments et https://graph.facebook.com/OBJECT_ID/likes, respectivement.

Malheureusement, d'après this question vous ne pouvez pas aimer une page.

+0

terriblement désolé, ce post explique que vous pouvez aimer à peu près tout, sauf pour les pages sur facebook: http://stackoverflow.com/questions/5837010/facebook-api-li-page-page-on-behalf-of-user-extended -permissions –

+0

Soyez prudent lorsque vous postez copiez et collez les réponses standardisées à des questions multiples, celles-ci ont tendance à être signalées comme «spammeuses» par la communauté. Si vous faites cela, cela signifie généralement que les questions sont des doublons, alors signalez-les comme tels. – Kev

1

La seule façon prise en charge par Facebook sur n'importe quelle plate-forme (web, mobile, etc.) est de leur code iFrame. Depuis iOS, cela signifie intégrer un UIWebView dans votre application avec le code iFrame. Notez que cela les oblige à se connecter via Safari.

0
- (void)addLikeButton{ 
[FBSettings enableBetaFeature:TRUE]; 
[FBSettings enablePlatformCompatibility:NO]; 
_like = [[FBLikeControl alloc] init]; 
_like.frame = CGRectMake(60,12,200,33); 
_like.likeControlAuxiliaryPosition = FBLikeControlAuxiliaryPositionInline; 
_like.likeControlHorizontalAlignment = FBLikeControlHorizontalAlignmentLeft; 
_like.objectID = @"https://www.facebook.com/pages/Strana-Gapra/1377227779244834"; 
_like.likeControlStyle = FBLikeControlStyleStandard ; 
[_like addTarget:self action:@selector(onSelect:) forControlEvents:UIControlEventValueChanged]; 
[self.likeView addSubview:_like]; 
[self performSelector:@selector(getLikeSubviews) withObject:nil afterDelay:0.6]; 

}