测试已测试 | ✗ |
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 |
首先,您需要复制位于配置目录中的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