SCFacebook 4.1

SCFacebook 4.1

测试测试过的
语种语言 Obj-CObjective C
许可证 未知
发布最后发布2018年3月

Lucas Correa维护。



 
依赖
FBSDKCoreKit>= 0
FBSDKShareKit>= 0
FBSDKLoginKit>= 0
 

  • 作者
  • Lucas Correa

SCFacebook 4.1 是一个简单且更易于使用的 API [Facebook-ios-sdk] (https://github.com/facebook/facebook-ios-sdk),带有 Blocks。

iOS 的 Facebook SDK 4.71

Graph API 版本 v2.12

FBSDKCoreKit 
FBSDKShareKit
FBSDKLoginKit

示例

SCFacebook Demo

安装

在您开始使用 Facebook SDK for iOS 之前,需要遵循以下指南 - 使用 Facebook iOS SDK 入门

入门

使用 CocoaPods 入门,您可以在 Podfile 中添加以下行

pod 'SCFacebook'

一旦您已设置URL SchemeFacebookAppID,如图所示

)

iOS 9 需要,添加类似于下面的字段

现在在它的AppDelegate中需要添加一个方法和添加权限

  #import <SCFacebook/SCFacebook.h>

  @implementation AppDelegate

  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    /**
    Init SCFacebook
    Add the necessary permissions
    
    If your app asks for more than than public_profile and email, it will require review by Facebook before your app can be used by people other than the app's developers.
    
    The time to review your app is usually about 7 business days. Some extra-sensitive permissions, as noted below, can take up to 14 business days.
    
    https://developers.facebook.com/docs/facebook-login/permissions/review
    **/
    
    [SCFacebook initWithReadPermissions:@[@"user_about_me",
                                      @"user_birthday",
                                      @"email",
                                      @"user_photos",
                                      @"user_events",
                                      @"user_friends",
                                      @"user_videos",
                                      @"public_profile"]
                 publishPermissions:@[@"manage_pages",
                                      @"publish_actions",
                                      @"publish_pages"]
    ];

    [FBSDKProfile enableUpdatesOnAccessTokenChange:YES];
    return [[FBSDKApplicationDelegate sharedInstance] application:application
                                    didFinishLaunchingWithOptions:launchOptions];

}

#pragma mark - 
#pragma mark - SCFacebook Handle
      
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
          return [[FBSDKApplicationDelegate sharedInstance] application:application
                                                              openURL:url
                                                    sourceApplication:sourceApplication
                                                           annotation:annotation];
}

示例用法

使用组件非常简单。导入您类的头文件。

  #import <SCFacebook/SCFacebook.h>

  @implementation ViewController

  #pragma mark - Button Action
  - (IBAction)login:(id)sender {
  
    [SCFacebook loginCallBack:^(BOOL success, id result) {
            if (success) {
            }
     }];
  }

- (IBAction)publishYourWallLink:(id)sender {
  [SCFacebook feedPostWithLinkPath:@"http://www.lucascorrea.com" caption:@"Portfolio" callBack:^(BOOL success, id result) {
            if (success) {
          }
  }];
}

- (IBAction)publishYourWallMessage:(id)sender {
  [SCFacebook feedPostWithMessage:@"This is message" callBack:^(BOOL success, id result) {
      if (success) {
          }
  }];
}

方法

当某人通过Facebook登录您的应用时,您可以访问该人存储在Facebook上的数据子集。权限是通过您即权限请求的方式。一个人的隐私设置与您的要求将决定您可以访问的内容。权限是随登录请求或API调用一起传递的字符串。以下有两个权限示例:email - 访问某人的主要电子邮件地址。user_likes - 访问某人喜欢的项目列表。https://developers.facebook.com/docs/facebook-login/permissions/v2.4 @param permissions

+ (void)initWithReadPermissions:(NSArray *)readPermissions publishPermissions:(NSArray *)publishPermissions;

检查是否存在开放会话,如果没有则创建并返回一个令牌以验证会话。@return BOOL

+ (BOOL)isSessionValid;

Facebook登录https://developers.facebook.com/docs/ios/graph @param callBack (BOOL success, id result)

+ (void)loginCallBack:(SCFacebookCallback)callBack;

Facebook登录https://developers.facebook.com/docs/ios/graph @param FBSDKLoginBehavior behavior @param callBack (BOOL success, id result)

+ (void)loginWithBehavior:(FBSDKLoginBehavior)behavior CallBack:(SCFacebookCallback)callBack;

Facebook注销https://developers.facebook.com/docs/ios/graph @param callBack (BOOL success, id result)

+ (void)logoutCallBack:(SCFacebookCallback)callBack;

通过传递字段从已登录用户获取数据。https://developers.facebook.com/docs/facebook-login/permissions/v2.12#reference-public_profile所需权限:public_profile... @param callBack (BOOL success, id result)

+ (void)getUserFields:(NSString *)fields callBack:(SCFacebookCallback)callBack;

这将仅返回任何通过Facebook登录使用请求应用的朋友。如果某人فضولبه拒绝user_friends权限,此人将不会出现在该人的朋友名单中。1 - 获取已安装应用的人的朋友列表 2 - 获取用户的朋友总数(包括尚未安装请求应用的人)https://developers.facebook.com/docs/graph-api/reference/v2.12/user/friends/所需权限:user_friends @param fields 字段示例:id, name, email, birthday, about, picture @param callBack (BOOL success, id result)

+ (void)getUserFriendsWithFields:(NSString *)fields callBack:(SCFacebookCallback)callBack;

这将仅返回任何通过Facebook登录使用请求应用的朋友。如果某人拒绝user_friends权限,此人将不会出现在该人的朋友名单中。https://developers.facebook.com/docs/graph-api/reference/v2.12/user/friends/所需权限:user_friends @param callBack (BOOL success, id result)

+ (void)getUserFriendsCallBack:(SCFacebookCallback)callBack __attribute__ ((deprecated("getUserFriendsCallBack has been replaced with getUserFriendsWithFields:callBack")));

带链接和标题发布到用户档案中https://developers.facebook.com/tools/accesstoken/所需权限:publish_actions @param url NSString @param caption NSString @param callBack (BOOL success, id result)

+ (void)feedPostWithLinkPath:(NSString *)url caption:(NSString *)caption callBack:(SCFacebookCallback)callBack;

带消息发布到用户档案中https://developers.facebook.com/tools/accesstoken/所需权限:publish_actions @param message NSString @param callBack (BOOL success, id result)

+ (void)feedPostWithMessage:(NSString *)message callBack:(SCFacebookCallback)callBack;

带照片和标题发布到用户档案中https://developers.facebook.com/tools/accesstoken/所需权限:publish_actions @param photo UIImage @param caption NSString @param callBack (BOOL success, id result)

+ (void)feedPostWithPhoto:(UIImage *)photo caption:(NSString *)caption callBack:(SCFacebookCallback)callBack;

在用户个人资料中发布带有视频、标题和描述的帖子 https://developers.facebook.com/docs/graph-api/reference/v2.12/user/feed 需要的权限:publish_actions @param videoData NSData @param title NSString @param description NSString @param callBack (BOOL success, id result)

+ (void)feedPostWithVideo:(NSData *)videoData title:(NSString *)title description:(NSString *)description callBack:(SCFacebookCallback)callBack;

此人的帖子(包括状态更新)和链接的动态流。 https://developers.facebook.com/docs/graph-api/reference/v2.12/user/feed 需要的权限:read_stream @param callBack (BOOL success, id result)

+ (void)myFeedCallBack:(SCFacebookCallback)callBack;

通过对话框通过消息邀请朋友 https://developers.facebook.com/docs/graph-api/reference/v2.12/user/ @param appLink URL @param preview URL 可选 @param callBack (BOOL success, id result)

+ (void)inviteFriendsWithAppLinkURL:(NSURL *)url previewImageURL:(NSURL *)preview callBack:(SCFacebookCallback)callBack __attribute__ ((deprecated("App Invites no longer supported")));

获取用户中的页面 https://developers.facebook.com/docs/graph-api/reference/v2.12/page 需要的权限:manage_pages @param callBack (BOOL success, id result)

+ (void)getPagesCallBack:(SCFacebookCallback)callBack;

根据ID获取页面 Facebook网址或pageId 示例 http://www.lucascorrea.com/PageId.png https://developers.facebook.com/docs/graph-api/reference/v2.12/page 需要的权限:manage_pages @param pageId Facebook网址或pageId @param callBack (BOOL success, id result)

+ (void)getPageById:(NSString *)pageId callBack:(SCFacebookCallback)callBack;

在页面个人资料中发布带有消息的帖子 https://developers.facebook.com/docs/graph-api/reference/v2.12/page 需要的权限:publish_actions @param page NSString @param message NSString @param callBack (BOOL success, id result)

+ (void)feedPostForPage:(NSString *)page message:(NSString *)message callBack:(SCFacebookCallback)callBack;

在页面个人资料中发布带有消息和照片的帖子 https://developers.facebook.com/docs/graph-api/reference/v2.12/page 需要的权限:publish_actions @param page NSString @param message NSString @param photo UIImage @param callBack (BOOL success, id result)

+ (void)feedPostForPage:(NSString *)page message:(NSString *)message photo:(UIImage *)photo callBack:(SCFacebookCallback)callBack;

在页面个人资料中发布带有消息和链接的帖子 https://developers.facebook.com/docs/graph-api/reference/v2.12/page 需要的权限:publish_actions @param page NSString @param message NSString @param url NSString @param callBack (BOOL success, id result)

+ (void)feedPostForPage:(NSString *)page message:(NSString *)message link:(NSString *)url callBack:(SCFacebookCallback)callBack;

在页面个人资料中发布带有视频、标题和描述的帖子 https://developers.facebook.com/docs/graph-api/reference/v2.12/page 需要的权限:publish_actions @param page NSString @param videoData NSData @param title NSString @param description NSString @param callBack (BOOL success, id result)

+ (void)feedPostForPage:(NSString *)page video:(NSData *)videoData title:(NSString *)title description:(NSString *)description callBack:(SCFacebookCallback)callBack;

使用管理员个人资料在页面上发表消息 https://developers.facebook.com/docs/graph-api/reference/v2.12/page 需要的权限:publish_actions @param page NSString @param message NSString @param callBack (BOOL success, id result)

+ (void)feedPostAdminForPageName:(NSString *)page message:(NSString *)message callBack:(SCFacebookCallback)callBack;

使用管理员个人资料在页面上发表带有消息的链接 https://developers.facebook.com/docs/graph-api/reference/v2.12/page 需要的权限:publish_actions @param page NSString @param message NSString @param url NSString @param callBack (BOOL success, id result)

+ (void)feedPostAdminForPageName:(NSString *)page message:(NSString *)message link:(NSString *)url callBack:(SCFacebookCallback)callBack;

使用管理员个人资料在页面上发表带有消息和照片的帖子 需要的权限:publish_actions https://developers.facebook.com/docs/graph-api/reference/v2.12/page @param page NSString @param message NSString @param photo UIImage @param callBack (BOOL success, id result)

+ (void)feedPostAdminForPageName:(NSString *)page message:(NSString *)message photo:(UIImage *)photo callBack:(SCFacebookCallback)callBack;

使用管理员个人资料在页面上发表带有视频、标题和描述的帖子 https://developers.facebook.com/docs/graph-api/reference/v2.12/page 需要的权限:publish_actions @param page NSString @param videoData NSData @param title NSString @param description NSString @param callBack (BOOL success, id result)

+ (void)feedPostAdminForPageName:(NSString *)page video:(NSData *)videoData title:(NSString *)title description:(NSString *)description callBack:(SCFacebookCallback)callBack;

获取用户相册 https://developers.facebook.com/docs/graph-api/reference/v2.12/user/albums 需要的权限:user_photos @param callBack (BOOL success, id result)

+ (void)getAlbumsCallBack:(SCFacebookCallback)callBack;

获取相册 ID https://developers.facebook.com/docs/graph-api/reference/v2.12/user/albums 需要的权限:user_photos @param albumId NSString @param callBack (BOOL success, id result)

+ (void)getAlbumById:(NSString *)albumId callBack:(SCFacebookCallback)callBack;

获取相册ID为 https://developers.facebook.com/docs/graph-api/reference/v2.12/album/photos 的照片。所需权限:user_photos @param albumId NSString @param params NSDictionary 示例: @{@"fields": @"name, images"} @param callBack (BOOL success, id result)

+ (void)getPhotosAlbumById:(NSString *)albumId withParams:(NSDictionary*)params callBack:(SCFacebookCallback)callBack;

获取相册ID为 https://developers.facebook.com/docs/graph-api/reference/v2.12/album/photos 的照片。所需权限:user_photos @param albumId NSString @param callBack (BOOL success, id result)

+ (void)getPhotosAlbumById:(NSString *)albumId callBack:(SCFacebookCallback)callBack __attribute__ ((deprecated("getPhotosAlbumById:callBack has been replaced with getPhotosAlbumById:withParams:callBack")));

为用户创建相册 https://developers.facebook.com/docs/graph-api/reference/v2.12/user/albums 所需权限:publish_actions 和 user_photos @param name NSString @param message NSString @param privacy ENUM @param callBack (BOOL success, id result)

+ (void)createAlbumName:(NSString *)name message:(NSString *)message privacy:(FBAlbumPrivacyType)privacy callBack:(SCFacebookCallback)callBack;

在您的用户个人资料中发布照片相册 https://developers.facebook.com/docs/graph-api/reference/v2.12/album/photos 所需权限:publish_actions @param albumId NSString @param photo UIImage @param callBack (BOOL success, id result)

+ (void)feedPostForAlbumId:(NSString *)albumId photo:(UIImage *)photo callBack:(SCFacebookCallback)callBack;

发布开放图 Open Graph 允许应用通过结构化、强类型的API在Facebook上讲述故事。当人们参与这些故事时,他们将被引导到您的应用或如果没有安装您的应用,则引导到您的应用的App Store页面,从而推动您应用的活动和分发。故事有以下核心组件:一个演员:发布故事的发布者,即用户。演员执行的动作,例如:烹饪、跑步或阅读。动作执行的对象:烹饪一顿饭、参加比赛、阅读一本书。应用:故事是从其中发布的应用的App,它与故事一起展示。我们提供了一些内置对象和动作以供频繁使用,您还可以创建自定义动作和对象以适应您的应用。 https://developers.facebook.com/docs/ios/open-graph 所需权限:publish_actions @param actionType NSString @param graphObject NSString @param objectName NSString @param viewController UIViewController @param callBack (BOOL success, id result)

+ (void)sendForPostOpenGraphWithActionType:(NSString *)actionType graphObject:(FBSDKShareOpenGraphObject *)openGraphObject objectName:(NSString *)objectName viewController:(UIViewController *)viewController callBack:(SCFacebookCallback)callBack;

如果在SCFacebook方法列表中不存在,此方法可用于通过图形API进行GET调用。调用Graph API GET https://developers.facebook.com/docs/ios/graph @param method NSString @param params NSDictionary @param callBack (BOOL success, id result)

+ (void)graphFacebookForMethodGET:(NSString *)method params:(id)params callBack:(SCFacebookCallback)callBack;

如果在SCFacebook方法列表中不存在,此方法可用于通过图形API进行POST调用。调用Graph API POST https://developers.facebook.com/docs/ios/graph @param method NSString @param params NSDictionary @param callBack (BOOL success, id result)

+ (void)graphFacebookForMethodPOST:(NSString *)method params:(id)params callBack:(SCFacebookCallback)callBack;

许可证

SCFacebook采用MIT许可证许可

版权所有 (c) 2011-现在 Lucas Correa (http://www.lucascorrea.com/)

在此特此许可任何人免费获得该软件及其关联文档文件(“软件”)的副本(“软件”),在不受限制的情况下处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件的副本,并允许向获得该软件的人提供副本以执行上述操作,但受以下条件约束

上述版权声明和本许可声明应包含在所有副本或实质部分软件中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适用于销售、特定目的适用性和非侵权性的保证。在任何情况下,作者或版权所有者不应对任何索赔、损害或其他责任负责,无论这些责任是由于合同行为、侵权或其他原因引起的,不论这些责任源于、涉及或与软件及其使用或其他操作有关。