mixi Developer Center (ミクシィ デベロッパーセンター)

mixi Connect

mixi Connect » mixi Graph API » 技術仕様 » Calendar API

Calendar API

カレンダにはユーザ個人の過去の記録や未来の予定だけではなく、ユーザが誰とどのような時間を過ごしたか、過ごすかを書き留めておくことができます。そのような情報を手軽に、様々なシチュエーションで利用するためにCalendar APIは存在します。 ここでは、Calendar APIの使用方法について説明します。

事前に必要なもの

Calendar APIを利用するためには、以下の情報をすでに入手している必要があります。

  • “r_calendar”または”w_calendar”スコープおよびその両方について認可されたアクセストークン

上記以外のスコープで認可されたアクセストークンを使用して、Calendar APIにアクセスすることはできません。アクセストークンの入手方法については、認証認可手順のページをご覧ください。

Calendar APIで提供される機能とスコープ

Calendar APIでは様々な機能が提供されますが、それらは大きく「参照系」「投稿系」の2つに分類されます。この分類は、そのままCalendar APIを利用するためのスコープに対応します。以下に、スコープと各機能の対応を示します

スコープ 機能
r_calendar 日程決定済みスケジュールの取得
w_calendar 日程決定済みスケジュールの投稿
※ 現在のところ日程がまだ決定されていないスケジュールの取得・投稿には対応していません。

スケジュールの取得(ID指定)

IDを指定してスケジュールを取得するためのURIは以下となります。

GET https://api.mixi-platform.com/2/calendar/schedules/[User-ID]/@self/[Schedule-ID]
パラメータ名 指定する値
User-ID 認可ユーザのユーザID、および認可ユーザ自身を示す"@me"、または友人のユーザID。スケジュールの作成者を指定する。
Schedule-ID あるスケジュールのID。

さらに、以下のクエリパラメータをサポートしています。

                                                                                       
パラメータ名 説明
fields取得したい情報の項目をカンマ区切りで指定します。 指定可能な項目名は「description,privacy,owner,owner.thumbnailUrl,owner.profileUrl, attendees,attendees.thumbnailUrl,attendees.profileUrl」です。もしfieldsパラメータを省略した場合には、「description,privacy,owner,owner.thumbnailUrl,owner.profileUrl, attendees,attendees.thumbnailUrl,attendees.profileUrl」が指定されたと見なされます。start_timeとtitleについては、必ず結果に含まれます。 またowner,attendeesを指定した場合はそれぞれowner.id,owner.displayNameとattendees.id,attendees.displayNameが必ず結果に含まれます。            

正常に取得できた場合は、以下のような結果を得ることができます。

{
  "entry":{
    "id":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "start_time":"2012-01-01T00:00:00+09:00",
    "title":"お正月",
    "description":"あけましておめでとうございます",
    "privacy":{
      "visibility":"public"
    },
    "owner":{
      "id":"xxxxxxxxxxxxx",
      "displayName":"表示名",
      "thumbnailUrl":"http://ic.photo.mixi.jp/v/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxx/picture/xxxxxxxxxxxxxx_999999_99small.jpg",
      "profileUrl":"http://mixi.jp/redirect_friend_api.pl?puid=xxxxxxxxxxxxx&client_id=xxxxxxxx"
    },
    "attendees":[
      {   
        "id":"xxxxxxxxxxxxx",
        "displayName":"表示名",
        "thumbnailUrl":"http://ic.photo.mixi.jp/v/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxx/picture/xxxxxxxxxxxxxx_999999_99small.jpg",
        "profileUrl":"http://mixi.jp/redirect_friend_api.pl?puid=xxxxxxxxxxxxx&client_id=xxxxxxxx"
      },
      ..以下略..
    ]   
  }
}

※ なおownerが友人ではない場合、fieldsパラメータの指定にかかわらずthumbnailUrl、profileUrlは返されません。またattendeesには友人のみ含まれます。

個々のエントリに含まれる情報は、以下のとおりです。

属性名 説明
id スケジュールを特定するためのID (Schedule-ID)
startDatetime 開始日時
title タイトル
description 説明文
privacy 公開範囲。詳細については下記を参照してください。
owner スケジュール作成者
owner.id 作成者のID
owner.displayName 作成者の表示名
owner.thumbnailUrl 作成者のサムネイル画像のURL
owner.profileUrl 作成者のプロフィール画像のURL
attendees スケジュール参加者(配列)
attendees.id 参加者のID
attendees.displayName 作成者の表示名
attendees.thumbnailUrl 参加者のサムネイル画像のURL
attendees.profileUrl 参加者のプロフィール画像のURL

"privacy" パラメーターの形式

そのスケジュールの公開範囲は、privacyパラメータ値で得られます。このprivacyパラメータは、更にvisibilityパラメータを持ちます。公開範囲の種別は、visibilityパラメータ値により表現されます。

visibilityパラメータ値の一覧は以下となります。

指定値意味
everyone全体に公開
friends友人まで公開
friends_of_friends友人の友人まで公開
top_friends仲良しに公開
group特定のグループにのみ公開
user特定のユーザにのみ公開
access_key合言葉にして公開
self非公開

スケジュールの取得(範囲指定)

開始日時の範囲を指定してスケジュールを取得するためのURIは以下となります。

GET https://api.mixi-platform.com/2/calendar/schedules/[User-ID]/[Group-ID]?startDatetimeMin=[DATETIME]
パラメータ名 指定する値
User-ID 認可ユーザのユーザID、および認可ユーザ自身を示す"@me"、または友人のユーザID。スケジュールの作成者を指定する。
Group-ID "@self"もしくは"@friends"もしくは"@all"。

※ なお、友人の友人たちの予定は取得できません。つまり /calendar/schedule/[友人のUID]/@friends という指定はエラーになります。

さらに、以下のクエリパラメータをサポートしています。

                                                                                                                                                                       
パラメータ名 説明
startDatetimeMin開始日の最小値。必須パラメータです。w3cdtf-formatで指定してください。
startDatetimeMax開始日の最大値。w3cdtf-formatで指定してください。省略した場合はstartDatetimeMinで指定された日付の23:59:59までとみなされます。
fields取得したい情報の項目をカンマ区切りで指定します。 指定可能な項目名は「description,privacy,owner,owner.thumbnailUrl,owner.profileUrl, attendees,attendees.thumbnailUrl,attendees.profileUrl」です。もしfieldsパラメータを省略した場合には、「privacy,owner,owner.thumbnailUrl,owner.profileUrl」が指定されたと見なされます。start_timeとtitleについては、必ず結果に含まれます。 またowner,attendeesを指定した場合はそれぞれowner.id,owner.displayNameとattendees.id,attendees.displayNameが必ず結果に含まれます。            

正常に取得できた場合は、以下のような結果を得ることができます。

{
  "entry":[
    {   
      "id":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "start_time":"2012-01-01T00:00:00+09:00",
      "title":"お正月",
      "description":"あけましておめでとうございます",
      "privacy":{
        "visibility":"public"
      },
      "owner":{
        "id":"xxxxxxxxxxxxx",
        "displayName":"表示名",
        "thumbnailUrl":"http://ic.photo.mixi.jp/v/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxx/picture/xxxxxxxxxxxxxx_999999_99small.jpg",
        "profileUrl":"http://mixi.jp/redirect_friend_api.pl?puid=xxxxxxxxxxxxx&client_id=xxxxxxxx"
      },
      "attendees":[
        {   
          "id":"xxxxxxxxxxxxx",
          "displayName":"表示名",
          "thumbnailUrl":"http://ic.photo.mixi.jp/v/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxx/picture/xxxxxxxxxxxxxx_999999_99small.jpg",
          "profileUrl":"http://mixi.jp/redirect_friend_api.pl?puid=xxxxxxxxxxxxx&client_id=xxxxxxxx"
        },
        ..以下略..
      ],
    },
    ..以下略..
}

個々のエントリに含まれる情報は、以下のとおりです。

属性名 説明
id スケジュールを特定するためのID (Schedule-ID)
startDatetime 開始日時
title タイトル
description 説明文
privacy 公開範囲。詳細については上記を参照してください。
owner 作成者
owner.id 作成者のID
owner.displayName 作成者の表示名
owner.thumbnailUrl 作成者のサムネイル画像のURL
owner.profileUrl 作成者のプロフィール画像のURL
attendees 参加者(配列)
attendees.id 参加者のID
attendees.displayName 作成者の表示名
attendees.thumbnailUrl 参加者のサムネイル画像のURL
attendees.profileUrl 参加者のプロフィール画像のURL

※ なおownerが友人ではない場合、fieldsパラメータの指定にかかわらずthumbnailUrl、profileUrlは返されません。またattendeesには友人のみ含まれます。

スケジュールの投稿

スケジュールを投稿するためのURIは以下となります。

POST https://api.mixi-platform.com/2/calendar/schedules/[User-ID]/@self
パラメータ名 指定する値
User-ID 認可ユーザのユーザID、および認可ユーザ自身を示す"@me"

Content-Typeリクエストヘッダには"application/json"を指定し、 登録するスケジュールは、リクエストボディとしてJSONを指定します。具体的には、以下のようなリクエストとなります。

{
  "startDatetimes":"2012-01-01T00:00:00+09:00",
  "title":"お正月",
  "description":"あけましておめでとうございます",
  "invite":"0",
  "privacy":{
    "visibility":"everyone"
  }, 
  "attendees":[
    "member0001",
    "member0002",
    "member0003"
  ]
}
※ inviteは参加者を募集するかどうかを"0"か"1"で指定してください。

スケジュールの投稿に成功した場合は、ステータスコード201、およびそのスケジュールを特定するためのIDを持つ以下のようなJSON文字列が返却されます。

{
    "id" : "73a1354313a8dced1ca07a68c1204b3d727042d048"
}

スケジュールへの参加

スケジュールに参加するためのURIは以下となります。

PUT https://api.mixi-platform.com/2/calendar/attendees/[User-ID]/@self/[Schedule-ID]
パラメータ名 指定する値
User-ID 友人のユーザID。スケジュールの作成者を指定する。
Schedule-ID 参加対象のスケジュールID。

スケジュールの参加に成功した場合は、ステータスコード201が返却されます。

{
    "id" : "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "attendees" : [
        "xxxxxxxxxxxxx"
    ]
}

個々のエントリに含まれる情報は、以下のとおりです。

属性名 説明
id スケジュールを特定するためのID (Schedule-ID)
attendees 新しく追加された参加者(配列)

このページの上部へ