API鍵の取得

以下の項目と一緒に vip@snoworange.com にメールをして下さい:

  1. 利用サーバー:国際(http://doit.im) または中国本土 (http://doitim.com)
  2. 開発者のDoit.imでのユーザー名
  3. 開発者のメールアドレス
  4. 開発者の名前/所属
  5. アプリ名
  6. アプリの詳細
  7. リダイレクト用URL(例, http://myapp.com/callback)

検査と承認

検査と承認の後、Doit.imから提案者にメールが届きます。

APIの利用の開始のために

UserStore.authenticate

HTTPはこちらにあります https://i.doitim.com/oauth

さらなる機能を利用できるようするために、短期の認証を作成するのにユーザー名とパスワードを使います。

パラメーター入力:

client_id
redirect_uri
response_type=code

アプリ内でブラウザを開き、以下に訪問します(例, https://i.doitim.com/oauth?client_id=53218f47acee1165829f604116c760f5&redirect_uri=http://i.doitim.com&response_type=code )

ログインとパスワードが求められます。認証した後、自動的にredirect_uri に移ります。同時に、URLに認証に成功したコードが追加されます。

access_token と refresh_tokenの交換コード

HTTP POST https://i.doitim.com/service/oauth2/token

パラメーター入力:

code
client_secret
client_id
redirect_uri
grant_type=authorization_code

例、

curl -d "code=f38c898541c4e9639de7c1014416382e&client_secret=97658ad0fec0c46afa6c2d098d4a7cb&client_id=53218f47acee1165829f604116c760f5&grant_type=authorization_code&redirect_uri=http://i.doitim.com"
https://i.doitim.com/service/oauth2/token

返信:

    {
      "code": "200",
      "message": "success",
      "type": "oauth",
      "data": {
        "token_type": "Bearer",
        "expires_in": 7776000000,
        "access_token": "e034d9a131beab9784bc220397c418fd",
        "refresh_token": "a3b85cfed368848fa0db304378de6eb4",
        "user_id": "50e8df830cf28e61af08198e" 
        }
    }

refresh_token を access_token に変換

HTTP POST https://i.doitim.com/service/oauth2/token

パラメーター入力:

refresh_token
client_secret
client_id
redirect_uri
grant_type=refresh_token

例、

curl -d "refresh_token=a3b85cfed368848fa0db304378de6eb4&client_secret=976508ad0fec0c46afa6c2d098d4a7cb&client_id=53218f47acee1165829f604116c760f5&grant_type=refresh_token&redirect_uri=http://i.doitim.com" https://i.doitim.com/service/oauth2/token

返信:

{
  "code": "200",
  "message": "success",
  "type": "oauth",
  "data": {
    "token_type": "Bearer",
    "expires_in": 7776000000,
    "access_token": "20649ac6c66fc8534c20a47009e81a2a",
    "refresh_token": "a3b85cfed368848fa0db304378de6eb4",
    "user_id": "50e8df830cf28e61af08198e" 
  }
}

タスクの作成

HTTP POST https://i.doitim.com/service/task

アプリケーションがアクセストークンを得た後、アクセストークンはDoit.im APIのHTTP認証ヘッダーのトークンに送られます。例、 (authorization: Bearer 20649ac6c66fc8534c20a47009e81a2a) ポストデータ(JSONと同様のアプリケーション/x-www-form-urlencodedになります)

{
          title: タスク名,ストリング,ヌルにできない
      notes: タスク詳細,ストリング,ヌルにできる
      start_at: 開始時間(秒),時間は 1970/1/1から,イント,ヌルにできる
      end_at: 終了時間(秒),時間は1970/1/1から,イント,ヌルにできる
      all_day: 終日タスク,ブーリアン,ヌルにできない
      tags: タグ,ストリングアライ ["tag1”],ヌルにできる
      project: プロジェクト名,ストリング,ヌルにできる
      context: コンテキスト名,ストリング,ヌルにできる
      goal: 目標名,ストリング,ヌルにできる


}

タグ、プロジェクト、コンテキスト、目標の名前(もし、名前が見つからなかった場合は、新たなオブジェクトが作成されます)に従ってサーバーがデーターを見つけます。新たなオブジェクトは新たなタスクにリンクされます。タスクは収集箱に初期設定で入ります。もし、タスクに開始時間が設定させていた場合、その時間に合わせたボックスに入ります。

例、

curl -H "authorization: Bearer 20649ac6c66fc8534c20a47009e81a2a" https://i.doitim.com/service/task -d "title=test&project=new project"

返信:

{
  "code": "200",
  "message": "success",
  "type": "task",
  "data": {
    "task_repeatno": "cae2faa0-84ca-11e3-b352-719b368c7bdc",
    "hidden": 0,
    "archived": 0,
    "completed": 0,
    "trashed": 0,
    "deleted": 0,
    "updated": 1390549227343,
    "created": 1390549227338,
    "usn": 16231,
    "title": "test",
    "uuid": "cae2faa0-84ca-11e3-b352-719b368c7bdc",
    "spent_time": 0,
    "estimated_time": 0,
    "pos": 0,
    "local_attachments": [],
    "now": false,
    "tags": [],
    "reminders": [],
    "sent_at": 0,
    "priority": 0,
    "project": "cae14cf0-84ca-11e3-b352-719b368c7bdc",
    "end_at": 0,
    "start_at": 0,
    "all_day": true,
    "attribute": "inbox" 
  }
}

エラーコード

http status code = 400

スロー


{
  "error": "E102",
  "code": "E102",
  "message": "access_token_is_missing  can not find  access_token" 
}
エラー

code: "E100" 
  message: "invalid_request_scheme (スキームからのエラー通知)" 
code: "E101" 
  message: "invalid_request_method (メソッドからのエラー通知)" 
code: "E102" 
  message: "access_token_is_missing  (access_tokenが見つからない)" 
code: "E103" 
  message: "invalid_access_token (access_token は存在しないか、ユーザーにより削除されている。またはユーザーがパスワード変更している)" 
code: "E104" 
  message: "invalid_client_id (client_id は存在しないか、ユーザーにより削除されている)" 
code: "E105" 
  message: "client_id_is_blocked (client_id has はブロックされている)" 
code: "E106" 
  message: "access_token_has_expired (access_token は期限切れ)" 
code: "E107" 
  message: "invalid_request_uri  (リクエストされたURLは登録されていない)" 
code: "E108" 
  message: "invalid_credencial1 (データーへのアクセス許可がない)" 
code: "E109" 
  message: "invalid_credencial2 (client_id は許可されていない)" 
code: "E110" 
  message: "not_trial_user (お試しユーザーは登録されていない)" 
code: "E111" 
  message: "rate_limit_exceeded1  (アクセス速度が制限されている)" 
code: "E112" 
  message: "rate_limit_exceeded2 (IPの訪問速度が制限されている)" 
code: "E113" 
  message: "required_parameter_is_missing  (パラメーターミス)" 
code: "E114" 
  message: "unsupported_grant_type  (grant_typeのエラー)" 
code: "E115" 
  message: "unsupported_response_type (response_typeのエラー)" 
code: "E116" 
  message: "client_secret_mismatch (client_secretが間違っている)" 
 code: "E117" 
  message: "redirect_uri_mismatch (redirect_uridoesが合わない)" 
code: "E118" 
  message: "invalid_authorization_code (authorization_codeは存在しないか、期限切れ)" 
code: "E119" 
  message: "invalid_refresh_token (refresh_tokendoesは存在しないか、期限切れ)" 
code: "E120" 
  message: "username_password_mismatch (ユーザー名とパスワードが合わない)" 
code: "E121" 
  message: "invalid_user (ユーザーが存在しないか、削除されている)" 
code: "E122" 
  message: "ser_has_blocked (ユーザーはブロックされている)" 
code: "E123" 
  message: "access_token_has_expired_since_password_changed (はユーザーがパスワードを変更したことにより期限切れ)" 
code: "E124" 
  message: "access_token_has_not_expired (access_tokenhasは期限切れではない)" 
code: "E125" 
  message: "invalid_request_scope (スコープの訪問は違法。この問題に特に注意を払う必要はない。通常、子のエラーは生じない)"