Skip to content

Instantly share code, notes, and snippets.

@ghawkgu
Last active December 14, 2015 00:59
Show Gist options
  • Save ghawkgu/5003326 to your computer and use it in GitHub Desktop.
Save ghawkgu/5003326 to your computer and use it in GitHub Desktop.
Tencent Weibo iOS SDK (v2.0) Manual

Tencent weibo (腾讯微博) iOS SDK マニュアル

中国語版へ

概要

SDKの機能概要

本SDKは下記の機能を含めています。

  • Tencent Weiboの認証(OAuth 2.0)
  • Tencent WeiboのAPI
  • 投稿、シェアモジュール
  • テスト用のデモ

使う機能に応じて、パラメータを入れたり、変えたりしたら、簡単にWeiboを活躍が出来る。投稿、シェアモジュールには「友人の選択」、「トピックスの選択」、「写真の添付」、「位置情報の添付」など、充実な機能が提供されている。また、サイズの大きな画像が自動的にリサイズされるから、通信のコストもよく改善されています。シェアモジュールは、画像と動画の投稿もできる。詳しくは、デモアプリのスクリーンショットを参照してください。

動作環境

iOS 4.3+ (iOS 4.3-6.0では動作確認済み)

開発環境

XCode 4.3+

ダウンロード

v2.0 ダウンロードリンク

テスト用のデモアプリ

SDKのzipファイルを解凍したら、デモアプリのプロジェクトがあります。実行中のスクリーンショットは下記のとおりになります。

アプリの作成

SDKを使うには、まずアプリの新規画面でアプリを申請してください。そのあと、APPIDとAPPKEYが発行されます。

SDKの使い方

  1. ヘッダーファイル
    全てのSDKのオブジェクトはTCWBEngine.hに定義されている。

  2. SDKの初期化
    メソッド定義

    - initWithAppKey:andSecret:andRedirectUrl
    

    初期化する時に、3つのパラメータが必要です。

    • App key
    • App secret
    • Redirect url

    使用例:

  3. ログイン(ユーザー認証)
    メソッド定義

    - logInWithDelegate:onSuccess:onFailure
    

    onSuccessonFailureはコールバックのメソッドセレクターです。

    使用例:

    コールバックメソッド定義例:

    - (void)onSuccessLogin {
        // ログインは成功した
    }
    
    - (void)onFailureLogin:(NSError *)error {
        // ログインは失敗した
    }
    
  4. ログアウト メソッド定義

    - logOut
    

    使用例:

    if ([weiboEngine logOut]) {
        //ログアウトは成功した
    } else {
        //ログアウトは失敗した
    }
    
  5. 常用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
  6. つぶやきの投稿のサンプル

    • 送信
    [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 {
        //失敗した
    }
    
  7. ビルトインシェア(投稿)モジュールのサンプル

    • メソッド宣言
    /*
     * モジュール: 投稿
     *
     * @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 {
        //失敗した
    }
    
    • こもメソッドを呼び出すと、下記のような画面が開く(ログインされてない場合には、先にログインフォローに入る)
  8. ビルトイン引用投稿モジュールのサンプル

    • メソッド宣言
    /*
     * モジュール: 引用投稿
     * @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 {
        //失敗した
    }
    
  9. 基礎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:)];
    
  10. ビルトインの投稿モジュール削除の方法
    ビルトインの投稿モジュールにはUIリソースが多いから、削除すると、アプリの容量は大幅に下がる。USE_UI_TWEETというマクロをコメントアウトすると、そのモジュールがアプリのバイナリから外される。 また、Imageディレクトリの中にある画像ファイルは全部投稿モジュール用なので、使わないなら、削除してよい。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment