Facebook SDK 登录分享

原创 2015年11月19日 17:20:15

Facebook SDK

typedef void (^FacebookLogin)();

- (void)facebookCompletion:(FacebookLogin)completion {

    [FBSDKProfileenableUpdatesOnAccessTokenChange:YES];

    FBSDKLoginManager *login = [[FBSDKLoginManageralloc]init];

    [login logInWithReadPermissions:@[@"public_profile"]

                 fromViewController:self

                            handler:^(FBSDKLoginManagerLoginResult *result,NSError *error) {

                                if (error) {

                                    DLog(@"Process error");

                                } elseif (result.isCancelled) {

                                    DLog(@"Cancelled");

                                } else {

                                    DLog(@"Logged in");

                                    completion();

                                }

                            }];

    [[[NSNotificationCenterdefaultCenter]rac_addObserverForName:FBSDKProfileDidChangeNotificationobject:nil]subscribeNext:^(id x) {

        FBSDKProfile *profile = [FBSDKProfilecurrentProfile];

   

    }];


}



- (void)shareWithFacebook {

    if (![FBSDKAccessTokencurrentAccessToken]) {

        [selffacebookCompletion:^{

           [selfshareWithFacebook];

        }];

        return;

    }

    if (![[FBSDKAccessTokencurrentAccessToken]hasGranted:@"publish_actions"]) {

        FBSDKLoginManager *login = [[FBSDKLoginManageralloc]init];

        [login logInWithPublishPermissions:@[@"publish_actions"]

                     fromViewController:navigationController

                                handler:^(FBSDKLoginManagerLoginResult *result,NSError *error) {

                                    if ([[FBSDKAccessTokencurrentAccessToken]hasGranted:@"publish_actions"]) {

                                        [selfshareWithFacebook];

                                    }

                                }];

        return;

    }

   

  if([self isFacebookInstalled] == NO) {

            FBSDKShareLinkContent *content = [[FBSDKShareLinkContent allocinit];

            content.contentTitle = @"name";

            content.contentDescription = @"shareContent";

            content.contentURL = [NSURL URLWithString:@"shareUrl"];

            content.imageURL = [NSURL URLWithString:@"imageUrl"];

            [FBSDKShareDialog showFromViewController:self

                                         withContent:content

                                            delegate:self];

            return;

        }

        __block NSURL *assetShareURL;      

  if ( [NSURL URLWithString:@"video"]) {

                [[[ALAssetsLibrary allocinitassetForURL: [NSURL URLWithString:@"video"] resultBlock:^(ALAsset *asset) {

                    assetShareURL =  [NSURL URLWithString:@"video"];

   [self shareVideo:assetShareURL];

                } failureBlock:^(NSError *error) {

                    

 NSString *videoPath = @"videoPath";

[assetsLibrarywriteVideoAtPathToSavedPhotosAlbum:[NSURLfileURLWithPath:videoPath] completionBlock:^(NSURL *assetURL,NSError *error) {

assetShareURL = assetURL;

[self shareVideo:assetURL];

}];

                }];

                

            }

}


- (void)shareVideo:(NSURL *)assetShareURL {

FBSDKShareVideo *video = [FBSDKShareVideo videoWithVideoURL:assetShareURL];

                FBSDKShareVideoContent *content = [[FBSDKShareVideoContent allocinit];

                content.video = video;

                [FBSDKShareDialog showFromViewController:self

                                             withContent:content

                                                delegate:self];

}

- (void)sharer:(id<FBSDKSharing>)sharer didCompleteWithResults:(NSDictionary *)results {

    NSLog(@"%@",results);

}


- (void)sharer:(id<FBSDKSharing>)sharer didFailWithError:(NSError *)error {

    NSLog(@"%@",error);

}


- (void)sharerDidCancel:(id<FBSDKSharing>)sharer {

    NSLog(@"%@",sharer);

}



遇到的一些问题:

登录 error code 308 

通过更新SDK解决

FBSDKShareVideo 以及 FBSDKSharePhoto 只支持本地安装了facebook App的


facebook分享(链接、照片、视频)

官方文档:https://developers.facebook.com/docs/sharing/ios 1:在info.plist里填写fbid 和fb对应的url scheme 2:ios9填...

Facebook第三方登录和分享

facebook第三方登录和分享

iOS对接Facebook:登录,分享,邀请,游戏排行榜功能

在如今的互联网环境下面,如果App仅仅依靠单一的渠道去获取用户量,这是一种很不明智的行为,为了能够更好地推广和使用自己的产品,很多App厂商都会去寻求类似新浪,腾讯,推特以及我们今天所要讲的Faceb...

IOS开发中实现whatsapp和Facebook分享过程的总结

首先,先给这篇文章定个位~~这不是一篇关于如何实现上述两个功能的手把手教程,只是将我在做这个的过程中遇到的问题以及找到的有用的资料在此罗列下,方便自己回顾,也方便有实现这方面要求的小伙伴找找资料~ 首...

ios 新版本 facebook SDK 分享方法

管理的例子挺好的。 官方的登录文档地址https://developers.facebook.com/ios/login-ui-control/ 使用方法 第一步添加appid 在in...
  • watsy
  • watsy
  • 2013年08月19日 19:20
  • 13779

【IOS和Android】Cocos2d-x 集成Facebook分享功能

(二)集成Facebook分享: 1、

Facebook SDK 的添加基本流程(Android)

1.首先你要打开 Android Studio 创建一个新的工程 出来后就是这样的,如下图 2.然后我们要添加 FaceBook 的一些依赖,主要是 Gradle Scripts -- bui...

FacebookSDK接入的那些坑

1,使用aar代替jar,对Android Studio熟悉的同学建议直接看第4步 1)首先需要开发工具使用Android studio而不是Eclipse; 一个Android studio M...
  • codehxy
  • codehxy
  • 2016年07月22日 15:56
  • 7663

How to share on Facebook obout iOS?

本来不是很难的东西,可就是由于英语水平不高,看那些老外的东西有点吃力,希望大家注重英语的积累! 实现facebook分享,主要分为以下几大步骤: 1. 有一个facebook账...

手游接入Facebook的那些坑

之前工作需要在手游中接入了facebook,并以此写了《手游接入Facebook功能》的博文。当时facebook sdk的版本还是3.x,代码集成度比较低,集成起来也比较麻烦。文中只是稍微提了下功能...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Facebook SDK 登录分享
举报原因:
原因补充:

(最多只允许输入30个字)