SinaWeibo.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. //
  2. // SinaWeibo.h
  3. // sinaweibo_ios_sdk
  4. //
  5. // Created by Wade Cheng on 4/19/12.
  6. // Copyright (c) 2012 SINA. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "SinaWeiboAuthorizeView.h"
  10. #import "SinaWeiboRequest.h"
  11. @protocol SinaWeiboDelegate;
  12. @interface SinaWeibo : NSObject <SinaWeiboAuthorizeViewDelegate, SinaWeiboRequestDelegate>
  13. {
  14. NSString *userID;
  15. NSString *accessToken;
  16. NSDate *expirationDate;
  17. id<SinaWeiboDelegate> delegate;
  18. NSString *appKey;
  19. NSString *appSecret;
  20. NSString *appRedirectURI;
  21. NSString *ssoCallbackScheme;
  22. SinaWeiboRequest *request;
  23. NSMutableSet *requests;
  24. BOOL ssoLoggingIn;
  25. }
  26. @property (nonatomic, copy) NSString *userID;
  27. @property (nonatomic, copy) NSString *accessToken;
  28. @property (nonatomic, copy) NSDate *expirationDate;
  29. @property (nonatomic, copy) NSString *refreshToken;
  30. @property (nonatomic, copy) NSString *ssoCallbackScheme;
  31. @property (nonatomic, assign) id<SinaWeiboDelegate> delegate;
  32. - (id)initWithAppKey:(NSString *)appKey appSecret:(NSString *)appSecrect
  33. appRedirectURI:(NSString *)appRedirectURI
  34. andDelegate:(id<SinaWeiboDelegate>)delegate;
  35. - (id)initWithAppKey:(NSString *)appKey appSecret:(NSString *)appSecrect
  36. appRedirectURI:(NSString *)appRedirectURI
  37. ssoCallbackScheme:(NSString *)ssoCallbackScheme
  38. andDelegate:(id<SinaWeiboDelegate>)delegate;
  39. - (void)applicationDidBecomeActive;
  40. - (BOOL)handleOpenURL:(NSURL *)url;
  41. // Log in using OAuth Web authorization.
  42. // If succeed, sinaweiboDidLogIn will be called.
  43. - (void)logIn;
  44. // Log out.
  45. // If succeed, sinaweiboDidLogOut will be called.
  46. - (void)logOut;
  47. // Check if user has logged in, or the authorization is expired.
  48. - (BOOL)isLoggedIn;
  49. - (BOOL)isAuthorizeExpired;
  50. // isLoggedIn && isAuthorizeExpired
  51. - (BOOL)isAuthValid;
  52. - (SinaWeiboRequest*)requestWithURL:(NSString *)url
  53. params:(NSMutableDictionary *)params
  54. httpMethod:(NSString *)httpMethod
  55. delegate:(id<SinaWeiboRequestDelegate>)delegate;
  56. @end
  57. /**
  58. * @description 第三方应用需实现此协议,登录时传入此类对象,用于完成登录结果的回调
  59. */
  60. @protocol SinaWeiboDelegate <NSObject>
  61. @optional
  62. - (void)sinaweiboDidLogIn:(SinaWeibo *)sinaweibo;
  63. - (void)sinaweiboDidLogOut:(SinaWeibo *)sinaweibo;
  64. - (void)sinaweiboLogInDidCancel:(SinaWeibo *)sinaweibo;
  65. - (void)sinaweibo:(SinaWeibo *)sinaweibo logInDidFailWithError:(NSError *)error;
  66. - (void)sinaweibo:(SinaWeibo *)sinaweibo accessTokenInvalidOrExpired:(NSError *)error;
  67. @end
  68. extern BOOL SinaWeiboIsDeviceIPad();