Tumblr SDK for iOSの使い方


以前作ったアプリでTumblr SDKを使うことがありましたので、導入方法を紹介します。

Tumblr APIもありますが、SDKを使う方がより簡単に使えます。

まずこちらからアプリを登録してOAuthによる認証に必要なコンシューマキー、コンシューマ秘密鍵取得します。

CocoaPodsを使って導入もできますが、今回は必要なファイルを直接取ってきます。

まずこちらからTumblr SDKをダウンロードしてください。

解凍してできたTMTumblrSDKディレクトリをプロジェクトにコピーします。

下記も必要となりますのでダウンロードしてプロジェクトにコピーしてください。

・JXHTTP
https://github.com/jstn/JXHTTP

・NSData-Base64
https://github.com/l4u/NSData-Base64

これでSDKを使用する準備が整いました。

ではここからは認証方法についてです。

AppDelegateのapplication:didFinishLaunchingWithOptionsに下記のコードを追加します。

[TMAPIClient sharedInstance].OAuthConsumerKey = @"取得したコンシューマキー";
[TMAPIClient sharedInstance].OAuthConsumerSecret = @"取得した秘密鍵";

次にinfo.plistにURL schemeの設定を行います。

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>astumblrclient</string>
    </array>
  </dict>
</array>

上記で設定したURL schemeでアプリを起動できるようにします。

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    return [[TMAPIClient sharedInstance] handleOpenURL:url];
}

次に認証処理を行います。
引数に上記で設定したURL schemeを設定してください。

[[TMAPIClient sharedInstance] authenticate:@"astumblrclient" callback:^(NSError *error) {
            if (error) {
                NSLog(@"Error login to Tumblr");
            } else {
                NSLog(@"login to Tumblr");

                // 取得したコンシューマキーと秘密鍵を保存する
                settingInfo.tumblrAuthToken = [TMAPIClient sharedInstance].OAuthToken;
                settingInfo.tumblrAuthTokenSecret = [TMAPIClient sharedInstance].OAuthTokenSecret;
                ・・・
            }
        }];

認証が完了したらDashboardから画像一覧をリクエストします。

[[TMAPIClient sharedInstance] dashboard:@{@"type": @"photo",
                                              @"limit" : @"20"}
                                   callback:^(id results, NSError *error) {

        NSLog(@"results: %@", [results description]);

        NSArray *posts = results[@"posts"];
        if (posts.count > 0) {
            // 処理を行う
            ・・・
        }
    }];

実際にDashboardの画像一覧を取得して表示するサンプルを作ってみましたので、参考にしてください。

作ってみた感想としてSDKを使えば簡単にTumblr APIを扱えるのですが、
ドキュメントが少ない点や日本語の情報がほとんどないので少し困りました。
日本人でTumblrを使う人があまり多くないということなんでしょうかね。