/QiitaKit

Qiita API client for Swift.

Primary LanguageSwiftMIT LicenseMIT

QiitaKit

Carthage compatible Pod Version Pod Platform Pod License Swift version

Swift製のQiitaAPIClient(v2)です。OAuth認証にも対応しています。

Usage

セットアップ

Qiitaマイページ で登録したアプリケーションのClientID, ClientSecretを設定してください。

// AppDelegate.swift
import QiitaKit

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    /*
     初期設定を行う

     - parameter clientID:                      登録アプリケーションのClientID
     - parameter clientSecret:                  登録アプリケーションのClientSecret
     - parameter teamDomain(Option):            QiitaTeamのドメイン(Optional)
     - parameter keychainConfiguration(Option): トークンを保存するKeychainの設定
    */
    AuthManager.sharedManager.setup(
       clientID: "xxxxx",
       clientSecret: "xxxxx")

    return true

}

OAuth認証

import QiitaKit

// 認証済み判定
let authorized: Bool = AuthManager.sharedManager.authorized

/*
OAuth認証を行う。認証を行うためのWindowが表示されます

- parameter scopes:      アプリで利用可能なスコープ
   - readQiita:      Qiitaからアクセストークンに紐付いたユーザに関連したデータを読み出す
   - readQiitaTeam:  Qiita:Teamからデータを読み出す
   - writeQiita:     Qiitaにデータを書き込む
   - writeQiitaTeam: Qiita:Teamにデータを書き込む

- parameter redirectURL: 登録アプリケーションで設定したリダイレクト先のURL

- parameter webViewType: OAuth認証を行うWebViewの種類

- parameter completion:  認証後に呼ばれるハンドラ

*/
AuthManager.sharedManager.authorize(withScopes: scopes,
                                    redirectURL: redirectURL,
                                    webViewType: .UIWebView)
{ result in
    switch result {
    case .success:
        // 認証成功

    case .failure(let error):
        // 認証失敗
    }
}

リクエスト

QiitaAPIの各リクエストに対応ています。

import QiitaKit

// 認証中ユーザ情報を取得するリクエストオブジェクト
let request = QiitaAPI.User.GetAuthenticatedUserRequest()

// リクエスト送信
APIClient().send(request) { result in
    switch result {
    case .success(let authenticatedUser):
        print(authenticatedUser)

    case .failure(let error):
        print(error)
    }
}

Installation

  • github "ykyouhei/QiitaKit" をCartfileに追記.
  • carthage updateを実行.
  • Carthage/Checkouts以下に生成されるQiitaKit.frameworkをプロジェクトにリンク
  • pod 'QiitaKit'をPodfileに追記
  • pod installを実行