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填...
  • lvchaman
  • lvchaman
  • 2016年07月13日 15:39
  • 8711

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

1.首先你要打开 Android Studio 创建一个新的工程 出来后就是这样的,如下图 2.然后我们要添加 FaceBook 的一些依赖,主要是 Gradle Scripts -- bui...
  • jiao2342016
  • jiao2342016
  • 2016年08月03日 20:32
  • 4289

Android平台接入Facebook登录

官方教程地址: https://developers.facebook.com/docs/android/getting-started开发环境为Android Studio,官方要求SDK最低版本...
  • liuweiballack
  • liuweiballack
  • 2015年11月13日 17:21
  • 12456

Facebook SDK集成之登录篇

前情概要 Facebook SDK集成之纲要篇 Facebook SDK集成之准备篇 Facebook SDK集成之登录篇 Facebook SDK集成之分享篇 集成环境github上的环境说明有点瑕...
  • shrimpcolo
  • shrimpcolo
  • 2015年12月15日 15:38
  • 2256

android实现推特Twitter分享

拿到分享图片到Twitter需求时,在网上翻了翻教程,比较乱,对我有帮助的也很少。最后看了看官方文档https://docs.fabric.io/android/index.html然后借鉴了网上的教...
  • qq_29967217
  • qq_29967217
  • 2016年06月07日 21:55
  • 6618

Twitter登录和分享

最近正在熟悉公司的项目,因为是国际项目,所以用到了google,facebook,Twitter等登录和分享。这里,写几个博客,总结一下,和记录一下。内容的来源,主要还是来自官网,然后我翻译过来的。 ...
  • u011216417
  • u011216417
  • 2017年06月20日 22:57
  • 3227

Facebook第三方登录

转自:http://www.jianshu.com/p/6950d10747cf 1、注册Facebook开发者:https://developers.facebook.com---->默认此帐号是管...
  • Jason_chen13
  • Jason_chen13
  • 2016年12月23日 10:12
  • 1554

Facebook developer iOS

前期准备:去facebook官网注册facebook帐号、创建app应用、下载SDK,在工程中导入Xcode中、配置xcode工程(参考developers.facebook.com官网) 注:在ap...
  • zhouxiangyu666666
  • zhouxiangyu666666
  • 2017年01月18日 15:37
  • 566

FacebookSDK接入的那些坑

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

Android Facebook SDK接入笔记

1、接入前准备工作首先需要解决科学上网的问题(翻墙工具、VPN等)。 FB SDK下载地址为: https://origincache.facebook.com/developers/resour...
  • aprilqq
  • aprilqq
  • 2016年10月27日 17:47
  • 2092
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Facebook SDK 登录分享
举报原因:
原因补充:

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