本SDKは下記の機能を含めています。
- Tencent Weiboの認証(OAuth 2.0)
- Tencent WeiboのAPI
- 投稿、シェアモジュール
- テスト用のデモ
使う機能に応じて、パラメータを入れたり、変えたりしたら、簡単にWeiboを活躍が出来る。投稿、シェアモジュールには「友人の選択」、「トピックスの選択」、「写真の添付」、「位置情報の添付」など、充実な機能が提供されている。また、サイズの大きな画像が自動的にリサイズされるから、通信のコストもよく改善されています。シェアモジュールは、画像と動画の投稿もできる。詳しくは、デモアプリのスクリーンショットを参照してください。
iOS 4.3+ (iOS 4.3-6.0では動作確認済み)
XCode 4.3+
SDKのzipファイルを解凍したら、デモアプリのプロジェクトがあります。実行中のスクリーンショットは下記のとおりになります。
SDKを使うには、まずアプリの新規画面でアプリを申請してください。そのあと、APPIDとAPPKEYが発行されます。
-
ヘッダーファイル
全てのSDKのオブジェクトはTCWBEngine.h
に定義されている。 -
SDKの初期化
メソッド定義- initWithAppKey:andSecret:andRedirectUrl
初期化する時に、3つのパラメータが必要です。
- App key
- App secret
- Redirect url
-
ログイン(ユーザー認証)
メソッド定義- logInWithDelegate:onSuccess:onFailure
onSuccess
とonFailure
はコールバックのメソッドセレクターです。コールバックメソッド定義例:
- (void)onSuccessLogin { // ログインは成功した } - (void)onFailureLogin:(NSError *)error { // ログインは失敗した }
-
ログアウト メソッド定義
- logOut
使用例:
if ([weiboEngine logOut]) { //ログアウトは成功した } else { //ログアウトは失敗した }
-
常用API一覧
詳しくはAPI一覧を参照してください。
API SDKのメソッド名 テキスト投稿(t/add) postTextTweetWithFormat テキスト+画像投稿(add_pic) postPictureTweetWithFormat テキスト+画像URL(add_pic_url) postPictureURLTweetWithFormat リツイート一覧(t/re_list) getTransTweetWithFormat フレンドリストの取得(friend/idollist_name) getFriendIdolListwithFormat ユーザー情報の取得(user/info) getUserInfoWithFormat 複数のユーザー情報の取得(user/infos) getInfosWithFormat 他人の情報の取得(user/other_info) getOtherUserInfoWithFormat マイページのタイムラインの取得(statuses/home_timeline) getHomeTimelineWithFormat 他人のタイムラインの取得(statuses/user_timeline) getUserTimelineWithFormat トピックスのタイムラインの取得(ht_timeline_ext) getTimelineWithFormat 他人をフォロアーする(friend/add) addFriendsWithFormat アイドルリストの取得(friend/idollist) getFriendIdolListWithFormat フォロアーリストの取得(friend/fanslist) getFriendFansListWithFormat お互いにフォロアーになってるフレンドリストの取得(friend/mutual_list) getFriendMutualListWithFormat お互いにフォロアーになってるかチェック(friend/check) checkFriendsWithFormat 位置情報によって、周りのユーザーリストの取得(lbs/get_around_people) getAroundPeopleWithFormat 位置情報によって、周りに投稿されたつぶやきの取得(lbs/get_around_news) getAroundNewsWithFormat 緯度経度によって、位置情報の取得(lbs/rgeoc) getMapRegocWithLlngLat -
つぶやきの投稿のサンプル
- 送信
[weiboEngine postTextTweetWithFormat:@"json" content:@"hello, world" clientIP:@"10.10.1.31" longitude:nil andLatitude:nil parReserved:nil delegate:self onSuccess:@selector(onPostMsgSucceed:) onFailure:@selector(onPostMsgFailed:)];
- コールバック
- (void)onPostMsgSucceed:(NSDictionary *)result { //成功した } - (void)onPostMsgFailed:(NSError *)err { //失敗した }
-
ビルトインシェア(投稿)モジュールのサンプル
- メソッド宣言
/* * モジュール: 投稿 * * @param content デフォルトテキスト内容 * @param image 画像 * @param reserved 拡張パラメータ * @param requestDelegate デリゲートインスタンス * @param postStartCallback 送信開始時のコールバック * @param successCallback 送信成功した時のコールバック * @param failureCallback 送信失敗した時のコールバック */ - (void)UIBroadCastMsgWithContent:(NSString *)content andImage:(UIImage *)image parReserved:(NSDictionary *)reserved delegate:(id)requestDelegate onPostStart:(SEL)postStartCallback onPostSuccess:(SEL)successCallback onPostFailure:(SEL)failureCallback;
- 使用例
[weiboEngine UIBroadCastMsgWithContent:@"qq" andImage:[UIImage imageNamed:@"test.png"] parReserved:nil delegate:self onPostStart:@selector(onPostMsgStart) onPostSuccess:@selector(onPostMsgSucceed:) onPostFailure:@selector(onPostMsgFailed:)];
- コールバック
- (void)onPostMsgStart { //送信開始の処理 } - (void)onPostMsgSucceed:(NSDictionary *)result { //成功した } - (void)onPostMsgFailed:(NSError *)err { //失敗した }
-
ビルトイン引用投稿モジュールのサンプル
- メソッド宣言
/* * モジュール: 引用投稿 * @param content デフォルトテキスト内容 * @param videoImageRefURL 動画url * @param imageRefURL 画像url * @param reserved 拡張パラメータ * @param requestDelegate デリゲートインスタンス * @param postStartCallback 送信開始時のコールバック * @param successCallback 送信成功した時のコールバック * @param failureCallback 送信失敗した時のコールバック */ - (void)UICreatRebroadWithContent:(NSString *)content imageRefURL:(NSString *)imageRefURL videoImageRefURL:(NSString *)videoImageRefURL parReserved:(NSDictionary *)reserved delegate:(id)requestDelegate onPostStart:(SEL)postStartCallback onSuccess:(SEL)successCallBack onFailure:(SEL)onFailureCallBack;
- 使用例
[weiboEngine UICreatRebroadWithContent:@"qq" imageRefURL:@"http://mat1.gtimg.com/app/opent/images/index/iweibo/logo.gif" videoImageRefURL:@"http://www.tudou.com/programs/view/b-4VQLxwoX4" parReserved:nil delegate:self onPostStart:@selector(onPostMsgStart) onPostSuccess:@selector(onPostMsgSucceed:) onPostFailure:@selector(onPostMsgFailed:)];
- コールバック
- (void)onPostMsgStart { //送信開始の処理 } - (void)onPostMsgSucceed:(NSDictionary *)result { //成功した } - (void)onPostMsgFailed:(NSError *)err { //失敗した }
-
基礎API(任意リクエストの送信) 常用API以外の機能を使うなら、基礎APIメソッドを使ってください。
メソッド宣言
/* * 基礎API * * @param methodName 使いたいAPI。例えば、つぶやきを送信するなら、"t/add"になる * @param params リクエストパラメータ * @param httpMethod "GET"或は"POST" * @param postDataType 送信用のデーターフォマート * @param httpHeaderFields HTTPヘッダーのNSdictionaryインスタンス * @param requestDelegate デリゲートインスタンス * @param successCallback 成功した時のコールバック * @param failureCallback 失敗した時のールバック */ - (void)initRequestWithMethodName:(NSString *)methodName httpMethod:(NSString *)httpMethod params:(NSDictionary *)params postDataType:(WBRequestPostDataType)postDataType andHttpHeaderFields:(NSDictionary *)httpHeaderFields delegate:(id)requestDelegate onSuccess:(SEL)successCallback onFailure:(SEL)failureCallback;
- 使用例
NSMutableDictionary *params = [@{ @"pageflag" : @"1", @"reqnum" : @"20", @"pagetime" : @"0", @"type" : @"0", @"contenttype" : @"0", } mutableCopy]; [weiboEngine initRequestWithMethodName:@"statuses/home_timeline" httpMethod:@"GET" params:params postDataType:kWBRequestPostDataTypeNone andHttpHeaderFields:nil delegate:self onSuccess:@selector(onGetTimeLineSucceed:) onFailure:@selector(onGetTimeLineFailed:)];
-
ビルトインの投稿モジュール削除の方法
ビルトインの投稿モジュールにはUIリソースが多いから、削除すると、アプリの容量は大幅に下がる。USE_UI_TWEET
というマクロをコメントアウトすると、そのモジュールがアプリのバイナリから外される。 また、Imageディレクトリの中にある画像ファイルは全部投稿モジュール用なので、使わないなら、削除してよい。