DribbbleSDK 0.0.3

DribbbleSDK 0.0.3

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最后发布2015年9月

mitushaVova Zgonik维护。



 
依赖
AFNetworking~> 2.3
BlocksKit>= 0
NXOAuth2Client>= 0
JSONModel>= 0
 

  • 作者
  • Agilie

DribbbleSDK是Dribbble SDK的易于使用的iOS封装器。我们正在努力完成可用方法的全面覆盖,使其成为最佳的iOS Dribbble SDK。祝您玩得开心,保持关注。

安装

要运行示例项目,首先将仓库克隆并从Demo目录中运行pod install

快速入门

  • 您所需的所有内容 - 使用您的应用Dribbble凭证设置DRApiClient实例
DRApiClientSettings *settings = [[DRApiClientSettings alloc] initWithBaseUrl:@"https://api.dribbble.com/v1/"
    oAuth2RedirectUrl:@"YOUR_REDIRECT_URL"
    oAuth2AuthorizationUrl:@"https://dribbble.com/oauth/authorize"
    oAuth2TokenUrl:@"https://dribbble.com/oauth/token"
    clientId:@"YOUR_OAuth2_CLIENT_ID"
    clientSecret:@"YOUR_OAuth2_CLIENT_SECRET"
    clientAccessToken:@"YOUR_OAuth2_CLIENT_ACCESS_TOKEN"
    scopes:[NSSet setWithObjects:@"public", @"write", @"upload", nil]];
self.apiClient = [[DRApiClient alloc] initWithSettings:settings];

调用-authorizeWithWebView方法进行OAuth2授权。(您需要UIWebView显示登录网页)

[apiClient authorizeWithWebView:self.webView authHandler:^(NXOAuth2Account *account, NSError *error) {
    //here you can handle authorization results
}];

授权不是必需的,您可以使用非授权访问某些方法。在这种情况下,API客户端使用Dribbble提供的默认访问令牌。您可以在Dribbble应用页面上获取应用访问令牌、客户端ID和密钥,查看以下链接

API使用

使用DRApiClient类对所有Dribbble功能进行操作

  • 使用authorizeWithWebView方法进行本地Dribbble授权
- (void)authorizeWithWebView:(UIWebView *)webView authHandler:(DROAuthHandler)authHandler;
  • 使用loadUserInfoWithResponseHandler方法获取用户信息
- (void)loadUserInfoWithResponseHandler:(DRResponseHandler)responseHandler;
  • 使用UserID(账户、赞、项目、团队、投篮、被关注者)获取任何用户的此方法数据
- (void)loadAccountWithUser:(NSNumber *)userId responseHandler:(DRResponseHandler)responseHandler;
- (void)loadLikesWithUser:(NSNumber *)userId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadMyLikesWithParams:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadProjectsWithUser:(NSNumber *)userId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadMyProjectsWithParams:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadTeamsWithUser:(NSNumber *)userId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadMyTeamsWithParams:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadShotsWithUser:(NSNumber *)userId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadMyShotsWithParams:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadFollowersWithUser:(NSNumber *)userId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadMyFollowersWithParams:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadFolloweesWithUser:(NSNumber *)userId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadMyFolloweesWithParams:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
  • 使用loadFolloweesShotsWithParams方法获取您关注的用户的投篮
- (void)loadFolloweesShotsWithParams:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
  • 您可以使用这些方法上传、更新或删除您的投篮
- (void)uploadShotWithParams:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)updateShot:(NSNumber *)shotId withParams:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)deleteShot:(NSNumber *)shotId responseHandler:(DRResponseHandler)responseHandler;
  • 使用此方法加载投篮/投篮,从某个类别或仅加载用户投篮
- (void)loadShotWith:(NSNumber *)shotId responseHandler:(DRResponseHandler)responseHandler;
- (void)loadShotsWithParams:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadShotsFromCategory:(DRShotCategory *)category atPage:(int)page responseHandler:(DRResponseHandler)responseHandler;
- (void)loadUserShots:(NSString *)url params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
  • 使用loadReboundsWithShot方法获取投篮的列表反弹
- (void)loadReboundsWithShot:(NSNumber *)shotId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
  • 您可以使用这些方法点赞/取消赞、检查这个投篮是否已点赞、查看谁喜欢了这个投篮
- (void)likeWithShot:(NSNumber *)shotId responseHandler:(DRResponseHandler)responseHandler;
- (void)unlikeWithShot:(NSNumber *)shotId responseHandler:(DRResponseHandler)responseHandler;
- (void)checkLikeWithShot:(NSNumber *)shotId responseHandler:(DRResponseHandler)responseHandler;
- (void)loadLikesWithShot:(NSNumber *)shotId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
  • 使用此方法为投篮上传/获取/更新/删除评论/评论,获取评论的赞并检查评论中的赞/取消赞
- (void)uploadCommentWithShot:(NSNumber *)shotId withBody:(NSString *)body responseHandler:(DRResponseHandler)responseHandler;
- (void)updateCommentWith:(NSNumber *)commentId forShot:(NSNumber *)shotId withBody:(NSString *)body responseHandler:(DRResponseHandler)responseHandler;
- (void)deleteCommentWith:(NSNumber *)commentId forShot:(NSNumber *)shotId responseHandler:(DRResponseHandler)responseHandler;
- (void)loadCommentsWithShot:(NSNumber *)shotId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadCommentWith:(NSNumber *)commentId forShot:(NSString *)shotId responseHandler:(DRResponseHandler)responseHandler;
- (void)likeWithComment:(NSNumber *)commentId forShot:(NSString *)shotId responseHandler:(DRResponseHandler)responseHandler;
- (void)unlikeWithComment:(NSNumber *)commentId forShot:(NSString *)shotId responseHandler:(DRResponseHandler)responseHandler;
- (void)checkLikeWithComment:(NSNumber *)commentId forShot:(NSString *)shotId responseHandler:(DRResponseHandler)responseHandler;
- (void)loadLikesWithComment:(NSNumber *)commentId forShot:(NSString *)shotId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
  • 使用此方法为投篮获取/上传/删除附件/附件
- (void)uploadAttachmentWithShot:(NSNumber *)shotId params:(NSDictionary *)params file:(NSData *)file mimeType:(NSString *)mimeType responseHandler:(DRResponseHandler)responseHandler;
- (void)deleteAttachmentWith:(NSNumber *)attachmentId forShot:(NSNumber *)shotId responseHandler:(DRResponseHandler)responseHandler;
- (void)loadAttachmentsWithShot:(NSNumber *)shotId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadAttachmentWith:(NSNumber *)attachmentId forShot:(NSString *)shotId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
  • 使用此方法获取投篮项目、项目投篮或通过项目ID获取精确的项目
- (void)loadProjectsWithShot:(NSNumber *)shotId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadProjectWith:(NSNumber *)projectId responseHandler:(DRResponseHandler)responseHandler;
- (void)loadProjectShotsWith:(NSNumber *)projectId responseHandler:(DRResponseHandler)responseHandler;
  • 您可以使用这些方法关注/取消关注用户并检查您/某些用户是否在关注用户
- (void)followUserWith:(NSNumber *)userId responseHandler:(DRResponseHandler)responseHandler;
- (void)unFollowUserWith:(NSNumber *)userId responseHandler:(DRResponseHandler)responseHandler;
- (void)checkFollowingWithUser:(NSNumber *)userId responseHandler:(DRResponseHandler)responseHandler;
- (void)checkIfUserWith:(NSNumber *)userId followingAnotherUserWith:(NSNumber *)anotherUserId responseHandler:(DRResponseHandler)responseHandler; 
  • 使用loadMembersWithTeam和loadShotsWithTeam方法获取团队成员和所有团队投篮
- (void)loadMembersWithTeam:(NSNumber *)teamId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadShotsWithTeam:(NSNumber *)teamId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
  • 有关桶的所有信息可以通过以下方法获得
- (void)loadMyBucketsWithParams:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadBucketsWithUser:(NSNumber *)userId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadBucketsForShot:(NSNumber *)shotId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadBucket:(NSNumber *)bucketId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)loadBucketShots:(NSNumber *)bucketId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)addShotToBucket:(NSNumber *)bucketId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)deleteShotFromBucket:(NSNumber *)bucketId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)addBucketWithParams:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)updateBucket:(NSNumber *)bucketId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
- (void)deleteBucket:(NSNumber *)bucketId params:(NSDictionary *)params responseHandler:(DRResponseHandler)responseHandler;
  • 登出
- (void)logout;

要求

iOS 7.0+

依赖项

API客户端依赖于以下pods

'AFNetworking' for networking
'JSONModel' for easy response-to-model translation
'NXOAuth2Client' for OAuth2 authorization
'BlocksKit' for general purposes

路线图

以下是我们在未来版本中计划包含的功能列表

  • 完成Dribbble API方法实现。
  • 请求限制处理。
  • 条件请求支持。

作者

Agilie [email protected]

许可证

DribbbleSDK在MIT许可证下可用。有关更多信息,请参阅LICENSE文件。