Chute-SDK 2.0.8

Chute-SDK 2.0.8

测试已测试
Lang语言 Obj-CObjective C
许可 MIT
发布最后发布2016年6月

Oliver Dimitrov维护。



 
依赖
AFNetworking~> 1.3.2
DCKeyValueObjectMapping~> 1.4
MBProgressHUD~> 0.7
Lockbox~> 1.4.3
CocoaLumberjack~> 1.6.2
 

Chute-SDK 2.0.8

  • 作者:
  • Oliver Dimitrov

设置

配置

首先,您需要复制位于配置目录中的GCConfiguration-Sample.plist,并将其命名为GCConfiguration.plist。然后,您需要手动将其添加到项目中。然后,在chute-sdk字典中,您需要插入您的App ID和App密钥。

客户端认证

首先将SDK文件复制到您的项目中。找到位于Chute-SDK/Chute-SDK/API中的GCOAuth2Client.m文件,并输入您的OAuth信息。

    static NSString * const kGCRedirectURIDefaultValue = @"http://getchute.com/oauth/callback";
    static NSString * const kGCScopeDefaultValue = @"all_resources manage_resources profile resources";

    #define kOAuthTokenURL                  @"http://getchute.com/oauth/access_token"

登录

您需要登录用户才能使用SDK。如果您只是显示图像并且社交互动有限,所以可以有一个单一用户帐户用于应用程序的各个方面,或者可以让单个用户登录到自己的帐户。

单一用户帐户

为应用程序的所有版本使用单一用户帐户是最容易设置的。您只需将认证密钥保存到GCClient的 'application:didFinishLaunchingWithOptions:' 中,在您的应用程序代理文件中即可。您可以通过添加以下行来完成此操作:

    [GCClient sharedClient] setAuthorizationHeaderWithToken:@"USER_ACCESS_TOKEN"];

用户登录

如果您让用户登录到一个账户,您必须首先确定您想使用哪个服务。您可以在GCOAuth2Client文件中设置此操作。有几个流行的服务可供选择。

    static NSString * kGCServices[] = {
    @"chute",
    @"facebook",
    @"twitter",
    @"google",
    @"flickr",
    @"instagram",
    @"foursquare"
};

您需要创建一个用于图像选择的视图控制器。您可以使用GCClient方法进行登录检查,如下所示:

    if([[GCClient sharedClient] isLoggedIn]==NO)
        [self performSegueWithIdentifier:@"xxx" sender:self.view];

此外,您还需要创建另一个带有几个按钮的视图控制器,这些按钮将代表可用于登录的服务。然后,当某个按钮被按下时,您只需简单地调用GCLoginView方法,如下所示

    GCOAuth2Client *oauth2Client = [GCOAuth2Client clientWithClientID:@"xxxxxxxxxxxxxxxxxxxxxxxx"  clientSecret:@"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"];
    [GCLoginView showInView:_view fromStartPoint:_startPoint oauth2Client:oauth2Client service:service success:^{
                    [self dismissViewControllerAnimated:YES completion:^{}];
} failure:^{}; 

它实际上创建了一个带有所选服务界面的弹出视图。您可以使用失败块来显示某些UIAlertView或您选择的内容。

登出

如果要让您的用户能够注销,您只需调用:

    [[GCClient sharedManager] clearAuthorizationHeader];

到这一点,您的应用程序将准备好使用Chute SDK。只需在任何将要访问SDK的类中#import "GetChute.h"即可。

您还可以在这里找到可定制的预构建组件此处。您可以挑选您想要使用的组件,并且这是快速开始使用chute并查看SDK功能的一个简单方法。

关键概念

客户端

所有Chute应用程序都使用OAuth,被称为'客户端'。

资产

任何由Chute管理的照片或视频。

相册

命名资产集合。每次您上传资产时,它们都会被分组到相册中。

响应

许多方法返回响应对象。它会告诉您API调用是否成功,并在失败时包含错误。响应对象还包括预先创建的对象(如果有),以及该字符串的原始JSON字符串和本地的Objective-C解码。这允许您轻松地以对您的项目最方便的格式获取响应。

基本任务

创建、更新和删除相册

创建、更新和删除相册非常简单。您只需调用以下方法之一

    - (void)createAlbumWithName:(NSString *)name moderateMedia:(BOOL)moderateMedia moderateComments:(BOOL)moderateComments success:(void (^)(GCResponseStatus *responseStatus, GCAlbum *album))success failure:(void (^)(NSError *error))failure

    - (void)updateAlbumWithName:(NSString *)name moderateMedia:(BOOL)moderateMedia moderateComments:(BOOL)moderateComments success:(void (^)(GCResponseStatus *responseStatus, GCAlbum *album))success failure:(void (^)(NSError *))failure

    -(void)deleteAlbumWithSuccess:(void(^)(GCResponseStatus *responseStatus))success failure:(void(^)(NSError *error))failure

上传资产

上传资产现在比以往任何时候都更容易。您可以使用单步上传器上传资产。要执行上传,您首先需要创建一个您想要上传的资产的数组。然后您只需从CGUploader.h调用以下方法即可

    - (void)uploadImages:(NSArray *)images inAlbumWithID:(NSNumber *)albumID progress:(void (^) (CGFloat currentUploadProgress, NSUInteger numberOfCompletedUploads, NSUInteger totalNumberOfUploads))progress success:(void (^) (NSArray *assets))success failure:(void (^)(NSError *error))failure;

显示资产

资产可以有两种显示方式。您可以调用GCAlbum方法来检索相册中的所有资产缩略图,如下所示

    [GCAlbum getAllAssetsWithSuccess:^(GCResponseStatus *responseStatus, NSArray *assets, GCPagination *pagination) {
        <#code#>
    } failure:^(NSError *error) {
        <#code#>
    }];

或者,您可以像这样获取某个资产的完整详细版本

    [GCAlbum getAssetWithID:_assetID success:^(GCResponseStatus *responseStatus, GCAsset *asset) {
        <#code#>
    } failure:^(NSError *error) {
        <#code#>
    }]

导入资产

您可以通过调用此方法从URL数组导入多个资产到相册中

    - (void)importAssetsFromURLs:(NSArray *)urls success:(void(^)(GCResponseStatus *responseStatus, NSArray *assets, GCPagination *pagination))success failure:(void(^)(NSError *error))failure

添加和删除资产

您可以通过使用以下方法向相册中添加或删除现有资产

    - (void)addAssets:(NSArray *)asssetsArray success:(void(^)(GCResponseStatus *responseStatus))success failure:(void(^)(NSError *error))failure

    - (void)removeAssets:(NSArray *)asssetsArray success:(void(^)(GCResponseStatus *responseStatus))success failure:(void(^)(NSError *error))failure
注意:资产必须已经存在,无论是通过上传还是导入。

社交任务

点赞资产

您可以通过调用此方法检索资产的点赞数

    - (void)getHeartCountForAssetInAlbumWithID:(NSNumber *)albumID success:(void(^)(GCResponseStatus *responseStatus, GCHeartCount *heartCount))success failure:(void(^)(NSError *error))failure

点赞和取消点赞资产很简单。您只需调用以下方法

    - (void)heartAssetInAlbumWithID:(NSNumber *)albumID success:(void(^)(GCResponseStatus *responseStatus,GCHeart *heart))success failure:(void(^)(NSError *error))failure

    - (void)unheartAssetWithID:(NSNumber *)assetID inAlbumWithID:(NSNumber *)albumID success:(void(^)(GCResponseStatus *responseStatus, GCHeart *heart))success failure:(void(^)(NSError *error))failure

评论资产

您可以通过调用此方法检索某一资产的所有评论

    - (void)getCommentsForAssetInAlbumWithID:(NSNumber *)albumID success:(void (^)(GCResponseStatus *responseStatus, NSArray *comments,GCPagination *pagination))success failure:(void (^)(NSError *error))failure

此外,还有两种方法用于提交评论和从资产中删除评论

    - (void)createComment:(NSString *)comment forAlbumWithID:(NSNumber *)albumID fromUserWithName:(NSString *)name andEmail:(NSString *)email success:(void (^)(GCResponseStatus *responseStatus, GCComment *comment))success failure:(void (^)(NSError *error))failure

    - (void)deleteCommentForAssetWithID:(NSNumber *)assetID inAlbumWithID:(NSNumber *)albumID success:(void(^)(GCResponseStatus *responseStatus, GCComment *comment))success failure:(void(^)(NSError *error))failure

标记资产

您可以使用此方法检索资产的所有标签

    - (void)getTagsForAssetInAlbumWithID:(NSNumber *)albumID success:(void(^)(GCResponseStatus *responseStatus,NSArray *tags))success failure:(void (^)(NSError *error))failure

此外,还有方法可以添加、替换和删除资产标签

    - (void)addTags:(NSArray *)tags inAlbumWithID:(NSNumber *)albumID success:(void (^)(GCResponseStatus *responseStatus, NSArray *tags))success failure:(void(^)(NSError *error))failure

    - (void)replaceTags:(NSArray *)tags inAlbumWithID:(NSNumber *)albumID success:(void (^)(GCResponseStatus *responseStatus, NSArray *tags))success failure:(void(^)(NSError *error))failure

    - (void)deleteTags:(NSArray *)tags inAlbumWithID:(NSNumber *)albumID success:(void (^)(GCResponseStatus *responseStatus, NSArray *tags))success failure:(void (^)(NSError *error))failure

投票资产

您可以通过调用此方法检索资产得票数

    - (void)getVoteCountForAlbumWithID:(NSNumber *)albumID success:(void(^)(GCResponseStatus *responseStatus, GCVoteCount *voteCount))success failure:(void(^)(NSError *error))failure

对资产进行投票和取消投票非常简单。只需调用以下方法

    - (void)voteAssetInAlbumWithID:(NSNumber *)albumID success:(void(^)(GCResponseStatus *responseStatus, GCVote *vote))success failure:(void(^)(NSError *error))failure

    - (void)removeVoteForAssetWithID:(NSNumber *)assetID inAlbumWithID:(NSNumber *)albumID success:(void(^)(GCResponseStatus *responseStatus, GCVote *vote))success failure:(void(^)(NSError *error))failure

标记某资产

您可以通过调用此方法检索资产被标记的数量

    -(void)getFlagCountForAssetInAlbumWithID:(NSNumber *)albumID success:(void(^)(GCResponseStatus *responseStatus, GCFlagCount *flagCount))success failure:(void(^)(NSError *error))failure

您可以通过调用这些方法之一来为资产添加或删除标记

    - (void)flagAssetInAlbumWithID:(NSNumber *)albumID success:(void(^)(GCResponseStatus *responseStatus, GCFlag *flag))success failure:(void(^)(NSError *error))failure

    - (void)removeFlagFromAssetWithID:(NSNumber *)assetID inAlbumWithID:(NSNumber *)albumID success:(void(^)(GCResponseStatus *responseStatus, GCFlag *flag))success failure:(void(^)(NSError *error))failure