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的


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

获取相册里所选视频对应的nsurl

协议: -(IBAction)fbShareVideo:(id)sender{          UIImagePickerController * pick = [[UIImagePi...

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

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

Facebook sdk嵌入,登陆与注销

最近项目需要使用Facebook登陆。在做完之后于是就像总结下,方便后来人使用。Facebook需要翻墙才能登陆。网上有好多翻墙软件和教程,大家可以先去看看。 使用Facebook登陆首需要去htt...

Android平台接入Facebook登录

官方教程地址: https://developers.facebook.com/docs/android/getting-started开发环境为Android Studio,官方要求SDK最低版本...

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

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

Facebook Android SDK 4.14使用详解(2016.8)

本文主要介绍了2016年8月facebook Android SDK 4.14.1在Android Studio中的部署方法,包括登录登出功能,分享功能,获得用户基本信息,头像的功能等。并指出了易错点...

Facebook官方sdk对接

facebook原生的登陆和分享及超链接跳转功能
  • byxyrq
  • byxyrq
  • 2015-12-23 22:26
  • 1581
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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