mixi Connect » mixi Graph API » 技術仕様 » Diary API
Diary API
mixi日記は、現在のmixiを語る上で必要不可欠のサービスと言えるでしょう。mixiを利用するユーザーの多くが、日々の出来事を日記に書き記します。自分だけが見る日記、友人に見せたい日記、写真付きの日記など、Diary APIを通じてユーザーは手軽に日記を投稿することが可能になるでしょう。
ここでは、Diary APIの使用方法について説明します。
事前に必要なもの
Diary APIを利用するためには、以下の情報をすでに入手している必要があります。
- “w_diary”または“r_diary”スコープについて認可されたアクセストークン
 
上記以外のスコープで認可されたアクセストークンを使用して、Diary APIにアクセスすることはできません。アクセストークンの入手方法については、認証認可手順のページをご覧ください。
日記の投稿
日記投稿を利用するためのURIは、以下となります。
POST https://api.mixi-platform.com/2/diary/articles/@me/@self
リクエストボディとして、投稿したい日記の内容を以下のようにmultipart/form-data形式にて指定します。
※日記に画像の添付が必要無い場合は、application/json形式で投稿する事も可能です。(詳細は後述)
boundary文字列
Content-Disposition: form-data; name="request"
{
    "title":"日記のタイトル",
    "body":"日記の本文",
    "privacy":{
        "visibility":"group",
        "group":"10",
        "show_users":"0"
    }
}
boundary文字列
Content-Disposition: form-data; name="photo1"; filename="添付画像1.jpg"
Content-Type: image/jpeg
.......添付画像のバイナリデータ
boundary文字列
Content-Disposition: form-data; name="photo2"; filename="添付画像2.jpg"
Content-Type: image/jpeg
.......添付画像のバイナリデータ
boundary文字列
Content-Disposition: form-data; name="photo3"; filename="添付画像3.jpg"
Content-Type: image/jpeg
.......添付画像のバイナリデータ
個々の項目に指定すべき値は、以下となります。
| パラメータ名 | 説明 | 必須 | 
|---|---|---|
| title | 日記のタイトル文字列 | ● | 
| body | 日記の本文 | ● | 
| privacy | この日記の公開設定 ※(詳細を後述) | ● | 
- 
		boundary文字列で区切った各要素は、日記情報はname=”request”を、
画像情報は1枚目2枚目3枚目とそれぞれ、photo1,photo2,photo3と指定してください。画像は3枚まで指定可能です。 - 添付画像の対応フォーマットはjpegとなっております。
 
画像無しで日記を投稿する場合
application/json形式にて、投稿したい日記の内容を以下のように指定します。
{
    "title":"日記の件名",
    "body":"日記の本文",
    "privacy":{
             "visibility":"group",
             "group":"10",
             "show_users":"0"
      }
}
“privacy” パラメーターの形式
	日記の公開設定は、privacyパラメータで設定が可能です。
	このprivacyパラメータは、更にvisibility/group/show_usersの三つのパラメータを持ちます。
	visibilityパラメータは公開範囲の種別を、
	groupパラメータは、この日記を閲覧可能とするグループのIDを(visibilityに”group”を指定した場合にのみ必須)
	show_usersは、その日記を閲覧可能な友人を公開するか否かを設定します。
それぞれのパラメータの詳細は下記のようになります。
| 指定値 | 意味 | 
|---|---|
| everyone | 全体に公開 | 
| friends | 友人まで公開 | 
| friends_of_friends | 友人の友人まで公開 | 
| top_friends | 仲良しに公開 | 
| group | 特定のグループにのみ公開 | 
| self | 非公開 | 
groupパラメーター値の形式
	visibilityに「特定のグループにのみ公開」と指定する際は下記のように、
	privacy内に別途でgroupというパラメータが必須となります
"privacy":{
        "visibility":"group",
        "group":"5"
}
	group値には、公開を許可するグループIDを指定してください。
	※グループIDについては、Groups APIにて取得したIDを指定する事となります。
show_usersパラメータ値
	show_usersを設定する事により、
	その日記を公開している友人一覧の表示範囲に、
	「自分だけに表示」か「自分と公開中の友人に表示」のどちらかを選択可能です。
	値に0を指定する事により、「自分だけに表示」
	1を指定する事により、「自分と公開中の友人に表示」となります。
	省略された際には「自分だけに表示」となります。
	この設定に関する仕様は下記ページでも説明されておりますので、ご参考下さい。
	http://mixi.jp/help.pl?mode=item&item=567
日記本文へのmixiフォトの挿入について
	日記の本文となるbodyパラメータの文字列には、
	Photo APIなどでアップロードしたmixiフォトを挿入する事が可能です。
	その際には下記のような文字列をbodyパラメータ内に挿入して下さい。
<photo src="v2:「Photo APIで取得したフォト情報のMediaItem ID」">
また、下記のように”MediaItem ID”の後に”:l”と付け加える事で大きいサイズのフォトを挿入することも可能です。
<photo src="v2:「Photo APIで取得したフォト情報のMediaItem ID」:l">
レスポンス仕様
正常に処理が行われた結果、APIは以下のような文字列をJSON形式で返却します。
{
    "id":"1656400812"
}
| 項目名 | 説明 | 
|---|---|
| id | 新しく作成された日記のID | 
HTTPステータスコードには、201が返却されます。
もし投稿に失敗した場合は、ステータスコード400番台または500番台と共に、そのエラーの内容を持つ以下のようなJSON文字列が返却されます。
{
    "error" : "access_denied",
    "error_description" : "your account is temporary prohibited"
}
ある日記の取得
リクエスト仕様
ある日記を取得するためのURIは、以下となります
GET http://api.mixi-platform.com/2/diary/articles/[User-ID]/@self/[Diary-ID]
URIのパスに含まれるパラメータは以下のとおりです。
| パラメータ名 | 指定する値 | 
|---|---|
| User-ID | 認可ユーザのユーザID、認可ユーザ自身を示す"@me"、または友人のユーザID | 
| Diary-ID | 対象日記のID | 
このURIは以下のクエリパラメータを受け付けます。
| bodyFormat | "text/plain"か"text/html"で本文のフォーマットを指定することができます。省略した場合はtext/html指定で本文を返します。 | 
レスポンス仕様
レスポンスに含まれる情報は以下となります。
| 属性名 | 説明 | 
|---|---|
| id | 日記のID | 
| title | 日記のタイトル | 
| body | 日記の本文。bodyFormatがtext/htmlの場合はhtmlを含む文字列 | 
| bodyFormat | 日記本文の形式。text/plainまたはtext/html | 
| viewPageUrl | この日記のページのURL | 
| privacy | 日記の公開範囲 | 
| created | 日記が投稿された日時 | 
| images | 日記に添付した画像のURLの配列 | 
| numComments | この日記につけられたコメントの件数 | 
| numFavorites | この日記につけられたイイネの件数 | 
| owner.id | 日記を投稿したユーザのID | 
| owner.displayName | 日記を投稿したユーザのニックネーム | 
| owner.thumbnailUrl | 日記を投稿したユーザのプロフィール画像のURL | 
| owner.profileUrl | 日記を投稿したユーザのプロフィールページのURL | 
以下はレスポンスの一例です。
{
    "id":"117676"
    "title":"日記のタイトル",
    "body":"<div class="diaryBody">日記の本文</div>",
    "bodyFormat": "text/html",
    "viewPageUrl": ""http://mixi.jp/redirect_with...",
    "privacy": {
        "visibility": "everyone"
      },
    "created": "2010-11-02T10:42:57+09:00",
    "images": [
      "http://ic.mixi.jp/p/9b9be89783a76b3b6ad02deddac21ca183ecd52700/4eb78b84/diary/1775504331_112s.jpg",
      "http://ic.mixi.jp/p/9b9be89783a76b3b6ad02deddac21ca183ecd52700/4eb78b84/diary/1775504331_112s.jpg",
    ],
    "numComments": "17",
    "numFavorites": "5",
    "owner": {
      "thumbnailUrl":"http://profile.img.mixi.jp/photo/user/7dshdjk3mbc3w_15647919.jpg",
      "id":"7dshdjk3mbc3w",
      "displayName":"jack",
      "profileUrl":"http://mixi.jp/redirect_friend_api.pl?puid=xxxxxxxxxxxxx&client_id=xxxxxxxx"
    },
}
ある日記へのコメント一覧の取得
リクエスト仕様
ある日記へのコメント一覧を取得するためのURIは、以下となります。
GET http://api.mixi-platform.com/2/diary/comments/[User-ID]/@self/[Diary-ID]
URIのパスに含まれるパラメータは以下のとおりです。
| パラメータ名 | 指定する値 | 
|---|---|
| User-ID | 認可ユーザのユーザID、認可ユーザ自身を示す"@me"、または友人のユーザID | 
| Diary-ID | 対象日記のID | 
このURIは以下のクエリ・パラメータを受け付けます。
| パラメータ名 | 説明 | 必須/任意 | デフォルト | 
|---|---|---|---|
| startIndex | 開始インデックス | 任意 | 0 | 
| count | 取得件数 | 任意 | 20 | 
レスポンス仕様
取得結果は以下のようになります。個々のエントリに含まれる情報はコメントオブジェクトになります。
{
    "entry" : [
        {
            "id" : "1FZ3P4ACUWBBC-20090520180336-1FZ3P4ACUWBBC-2009052112112",
            "created" : "2010-12-08T11:07:38+09:00",
            "text" : "コメント本文",
            "user" : {
                "id" : "sa1pzkdg9emdd",
                "displayName" : "ニックネーム",
                "thumbnailUrl" : "http://profile.img.mixi.jp/photo/user/sa1pzkdg9emde_156479.jpg",
                "profileUrl" : "http://mixi.jp/redirect_friend_api.pl?puid=xxxxxxxxxxxxx&client_id=xxxxxxxx"
            }
        }
    ],
    ・・・
}
個々のエントリに含まれる情報は以下となります。
| 属性名 | 説明 | 
|---|---|
| id | コメントを特定するためのID | 
| created | コメントが投稿された日時 | 
| text | コメントの本文 | 
| user.id | コメントを投稿したユーザのID | 
| user.displayName | コメントを投稿したユーザのニックネーム | 
| user.thumbnailUrl | コメントを投稿したユーザのプロフィール画像のURL | 
| user.profileUrl | コメントを投稿したユーザのプロフィールページのURL | 
userプロパティについて、コメントの投稿ユーザがアクセストークンの認可ユーザと友人関係ではなかった場合は、user.id、user.displayName、user.thumbnailUrlプロパティのみが結果として返却されます。
ある日記へのイイネ一覧の取得
リクエスト仕様
ある日記へのイイネ一覧を取得するためのURIは、以下となります。
GET http://api.mixi-platform.com/2/diary/favorites/[User-ID]/@self/[Diary-ID]
URIのパスに含まれるパラメータは以下のとおりです。
| パラメータ名 | 指定する値 | 
|---|---|
| User-ID | 認可ユーザのユーザID、認可ユーザ自身を示す"@me"、または友人のユーザID | 
| Diary-ID | 対象日記のID | 
このURIは以下のクエリ・パラメータを受け付けます。
| パラメータ名 | 説明 | 必須/任意 | デフォルト | 
|---|---|---|---|
| startIndex | 開始インデックス | 任意 | 0 | 
| count | 取得件数 | 任意 | 20 | 
レスポンス仕様
取得結果は以下のようになります。個々のエントリに含まれる情報はイイネオブジェクトになります。
{
    "entry" : [
        {
            "id" : "sa1pzkdg9emdd",
            "displayName" : "ニックネーム",
            "thumbnailUrl" : "http://profile.img.mixi.jp/photo/user/sa1pzkdg9emde_156479.jpg",
            "profileUrl" : "http://mixi.jp/redirect_friend_api.pl?puid=xxxxxxxxxxxxx&client_id=xxxxxxxx"
        },
        ・・・
    ],
    ・・・
}
個々のエントリに含まれる情報は以下となります。
| 属性名 | 説明 | 
|---|---|
| id | コメントを投稿したユーザのID | 
| displayName | コメントを投稿したユーザのニックネーム | 
| thumbnailUrl | コメントを投稿したユーザのプロフィール画像のURL | 
| profileUrl | コメントを投稿したユーザのプロフィールページのURL | 
イイネの投稿ユーザがアクセストークンの認可ユーザと友人関係ではなかった場合は、id、displayName、thumbnailUrlプロパティのみが結果として返却されます。
ある日記へのコメントの投稿
リクエスト仕様
コメントを投稿するためのURIは、以下となります。
POST https://api.mixi-platform.com/2/diary/comments/[User-ID]/@self/[Diary-ID]
URIのパスに含まれるパラメータは以下のとおりです。
| パラメータ名 | 指定する値 | 
|---|---|
| User-ID | 認可ユーザのユーザID、認可ユーザ自身を示す"@me"、または友人のユーザID | 
| Diary-ID | 対象日記のID | 
Content-Typeリクエスト・ヘッダに"application/json"を指定し、リクエスト・ボディにて以下の内容をJSON形式で送信します。
| フィールド名 | 内容 | 必須/任意 | デフォルト値 | 
|---|---|---|---|
| text | コメント本文 | 必須 | – | 
レスポンス仕様
コメントの投稿に成功した場合は、HTTPステータスコード201が返却されます。
レスポンス・ボディは以下の内容を含むJSONになります。
| 属性名 | 説明 | 
|---|---|
| id | コメントのID | 
| created | コメントが投稿された日時 | 
| text | コメントの本文 | 
| user.id | コメントを投稿したユーザのID | 
| user.displayName | コメントを投稿したユーザのニックネーム | 
| user.thumbnailUrl | コメントを投稿したユーザのプロフィール画像のURL | 
| user.profileUrl | コメントを投稿したユーザのプロフィールページのURL | 
一例として、投稿結果は以下のようになります。
{
    'created' : '2012-06-12T15:19:23+09:00',
    'text' : "コメントの本文",
    'user' : {
        'thumbnailUrl' : 'http://img.mixi.net/img/basic/common/noimage_member180.gif',
        'id' : 'oc14tougma55j',
        'displayName' : 'kevin',
        'profileUrl' : 'http:///show_friend.pl?uid=oc14tougma55j'
    },
    'id' : '3436752150-20120612151923-oc14tougma55j'
}
ある日記へのイイネの投稿
リクエスト仕様
イイネを投稿するためのURIは、以下となります。
POST https://api.mixi-platform.com/2/diary/favorites/[User-ID]/@self/[Diary-ID]
URIのパスに含まれるパラメータは以下のとおりです。
| パラメータ名 | 指定する値 | 
|---|---|
| User-ID | 認可ユーザのユーザID、認可ユーザ自身を示す"@me"、または友人のユーザID | 
| Diary-ID | 対象日記のID | 
レスポンス仕様
イイネの投稿に成功した場合は、HTTPステータスコード201が返却されます。
レスポンス・ボディは以下の内容を含むJSONになります。
| 属性名 | 説明 | 
|---|---|
| id | イイネしたユーザのID | 
{
    'id' : 'oc14tougma55j',
}
ある日記へのコメント削除
リクエスト仕様
コメントを削除するためのURIは、以下となります。
DELETE https://api.mixi-platform.com/2/diary/comments/[User-ID]/@self/[Diary-ID]/[Comment-ID]
| パラメータ名 | 指定する値 | 
|---|---|
| User-ID | 認可ユーザのユーザID、認可ユーザ自身を示す"@me"、または友人のユーザID | 
| Diary-ID | 対象日記のID | 
| Comment-ID | コメントのID | 
レスポンス仕様
コメントの削除に成功した場合は、HTTPステータスコード200が返却されます。
HTTP/1.1 200 OK
ある日記へのイイネ削除
リクエスト仕様
イイネを削除するためのURIは、以下となります。
DELETE https://api.mixi-platform.com/2/diary/favorites/[User-ID]/@self/[Diary-ID]/[Favorite-User-ID]
| パラメータ名 | 指定する値 | 
|---|---|
| User-ID | 認可ユーザのユーザID、認可ユーザ自身を示す"@me"、または友人のユーザID | 
| Diary-ID | 対象日記のID | 
| Favorite-User-ID | 削除するイイネをしたユーザのID | 
レスポンス仕様
イイネの削除に成功した場合は、HTTPステータスコード200が返却されます。
HTTP/1.1 200 OK
表現形式
	文字コードについては、リクエスト時に使用される文字コードはUTF-8となります。
	Content-Typeリクエストヘッダのcharset値にはUTF-8の指定が必要となります。
	本APIは、絵文字の変換処理に対応しております。
	絵文字の仕様詳細については、下記のページをご参照下さい。
	 絵文字の扱いについて