关闭

Facebook SDK 登录分享

标签: iosfacebook
987人阅读 评论(0) 收藏 举报
分类:

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的


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4743次
    • 积分:119
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:16篇
    • 译文:0篇
    • 评论:0条
    文章分类