Initial commit 🍀

This commit is contained in:
syuilo 2016-12-29 07:49:51 +09:00
commit b3f42e62af
405 changed files with 31017 additions and 0 deletions

39
src/web/about/base.pug Normal file
View file

@ -0,0 +1,39 @@
doctype html
html(lang='ja', dir='ltr')
head
meta(charset='utf-8')
meta(name='application-name', content='Misskey')
meta(name='theme-color', content='#f76d6c')
meta(name='referrer', content='origin')
meta(name='viewport', content='width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no')
link(rel='stylesheet', href='/resources/style.css')
title
block title
body
nav
ul
li
p API
ul
li: a(href='/api/getting-started') Getting Started
li
p Entities
ul
li: a(href='/api/entities/post') Post
li: a(href='/api/entities/user') User
li: a(href='/api/library') ライブラリ
li: a(href='/license') ライセンス
main
article
block content
footer
p.contribution
| 間違いを見つけた、またはドキュメントに貢献したいですか?
a(href='https://github.com/syuilo/misskey/blob/master/src/web/about/pages/' + path + '.pug', target='_blank') Github 上でこのページを編集する
| か、
a(href='https://github.com/syuilo/misskey/fork', target='_blank') Github からこのサイトを Fork してプルリクエストしましょう!
p.copyright (c) syuilo 2016

View file

@ -0,0 +1,149 @@
extend ../../../base
block title
| Entity: Post
block content
h1 Post
p 投稿を表します。
section
h2 Properties
table.entity
thead: tr
td Name
td Type
td Description
tbody
tr.nullable.optional
td app
td: a(href='./app', target='_blank') App
td 投稿したアプリ
tr.nullable
td app_id
td ID
td 投稿したアプリのID
tr
td created_at
td Date
td 投稿日時
tr
td id
td ID
td 投稿ID
tr.optional
td is_liked
td Boolean
td いいね したかどうか
tr
td likes_count
td Number
td いいね数
tr.nullable.optional
td media_ids
td ID[]
td 添付されたメディアのIDの配列
tr.nullable.optional
td media
td: a(href='./drive-file', target='_blank') DriveFile[]
td 添付されたメディアの配列
tr
td replies_count
td Number
td 返信数
tr.optional
td reply_to
td: a(href='./post', target='_blank') Post
td 返信先の投稿
tr.nullable
td reply_to_id
td ID
td 返信先の投稿のID
tr.optional
td repost
td: a(href='./post', target='_blank') Post
td Repostした投稿
tr
td repost_count
td Number
td Repostされた数
tr.nullable
td repost_id
td ID
td Repostした投稿のID
tr.nullable
td text
td String
td 本文
tr.optional
td user
td: a(href='./user', target='_blank') User
td 投稿者
tr
td user_id
td ID
td 投稿者のID
section
h2 Example
pre: code.
{
"created_at": "2016-12-10T00:28:50.114Z",
"media_ids": null,
"reply_to_id": "584a16b15860fc52320137e3",
"repost_id": null,
"text": "小日向美穂だぞ!",
"user_id": "5848bf7764e572683f4402f8",
"app_id": null,
"likes_count": 1,
"replies_count": 1,
"id": "584b4c42d8e5186f8f755d0c",
"user": {
"birthday": null,
"created_at": "2016-12-08T02:03:35.332Z",
"bio": "女が嫌いです、女性は好きです",
"followers_count": 11,
"following_count": 11,
"links": null,
"location": "",
"name": "女が嫌い",
"posts_count": 26,
"likes_count": 2,
"liked_count": 20,
"username": "onnnagakirai",
"id": "5848bf7764e572683f4402f8",
"avatar_url": "https://file.himasaku.net/5848c0ec64e572683f4402fc",
"banner_url": "https://file.himasaku.net/5848c12864e572683f4402fd",
"is_following": true,
"is_followed": true
},
"reply_to": {
"created_at": "2016-12-09T02:28:01.563Z",
"media_ids": null,
"reply_to_id": "5849d35e547e4249be329884",
"repost_id": null,
"text": "アイコン小日向美穂?",
"user_id": "57d01a501fdf2d07be417afe",
"app_id": null,
"replies_count": 1,
"id": "584a16b15860fc52320137e3",
"user": {
"birthday": null,
"created_at": "2016-09-07T13:46:56.605Z",
"bio": "どうすれば君だけのために生きていけるの",
"followers_count": 51,
"following_count": 97,
"links": null,
"location": "川崎",
"name": "きな子",
"posts_count": 4813,
"username": "syuilo",
"likes_count": 3141,
"liked_count": 750,
"id": "57d01a501fdf2d07be417afe",
"avatar_url": "https://file.himasaku.net/583ddc6e64df272771f74c1a",
"banner_url": "https://file.himasaku.net/584bfc82d8e5186f8f755ec5"
}
},
"is_liked": true
}

View file

@ -0,0 +1,118 @@
extend ../../../base
block title
| Entity: User
block content
h1 User
p ユーザーを表します。
section
h2 Properties
table.entity
thead: tr
td Name
td Type
td Description
tbody
tr.nullable.optional
td avatar_id
td ID
td アバターに設定しているドライブのファイルのID
tr.nullable
td avatar_url
td String
td アバターURL
tr.nullable.optional
td banner_id
td ID
td バナーに設定しているドライブのファイルのID
tr.nullable
td banner_url
td String
td バナーURL
tr.nullable
td bio
td String
td プロフィール
tr.nullable
td birthday
td String
td 誕生日
tr
td created_at
td Date
td アカウント作成日時
tr.optional
td drive_capacity
td Number
td ドライブの最大容量(byte単位)
tr
td followers_count
td Number
td フォロワー数
tr
td following_count
td Number
td フォロー数
tr
td id
td ID
td ユーザーID
tr.optional
td is_followed
td Boolean
td フォローされているか
tr.optional
td is_following
td Boolean
td フォローしているか
tr
td liked_count
td Number
td 投稿にいいねされた数
tr
td likes_count
td Number
td 投稿にいいねした数
tr.nullable
td location
td String
td 場所
tr
td name
td String
td ニックネーム
tr
td posts_count
td Number
td 投稿数
tr
td username
td String
td ユーザー名
section
h2 Example
pre: code.
{
"avatar_id": "583ddc6e64df272771f74c1a",
"avatar_url": "https://file.himasaku.net/583ddc6e64df272771f74c1a",
"banner_id": "584bfc82d8e5186f8f755ec5",
"banner_url": "https://file.himasaku.net/584bfc82d8e5186f8f755ec5",
"bio": "どうすれば君だけのために生きていけるの",
"birthday": null,
"created_at": "2016-09-07T13:46:56.605Z",
"drive_capacity": 1073741824,
"email": null,
"followers_count": 51,
"following_count": 97,
"id": "57d01a501fdf2d07be417afe",
"liked_count": 750,
"likes_count": 3130,
"links": null,
"location": "川崎",
"name": "きな子",
"posts_count": 4811,
"username": "syuilo"
}

View file

@ -0,0 +1,74 @@
extend ../../base
block title
| Getting Started
block content
h1 Getting Started
p MisskeyはREST APIやStreaming APIを提供しており、プログラムからMisskeyの全ての機能を利用することができます。
p それらのAPIを利用するには、まずAPIを利用したいアカウントのアクセストークンを取得する必要があります:
section
h2 自分のアクセストークンを取得したい場合
p 自分自身のアクセストークンは、設定 > API で確認できます。
p.tip
| アカウントを乗っ取られてしまう可能性があるため、トークンは第三者に教えないでください(アプリなどにも入力しないでください)。
br
| 万が一トークンが漏れたりその可能性がある場合は トークンを再生成できます。(副作用として、ログインしているすべてのデバイスでログアウトが発生します)
section
h2 他人のアクセストークンを取得する
p
| 不特定多数のユーザーからAPIを利用したい場合、アプリケーションを作成します。
br
| アプリケーションを作成すると、ユーザーが連携を許可した時に、そのユーザーのアクセストークンを取得することができます。
p アプリケーションを作成しアクセストークンを取得するまでの流れを見ていきます。
section
h3 アプリケーションを作成する
p まずはあなたのアプリケーションを作成しましょう。
p
| <a href=#{config.dev_url} target="_blank">デベロッパーセンター</a>にアクセスし、アプリ > アプリ作成 に進みます。
br
| 次に、フォームに必要事項を記入します:
dl
dt アプリケーション名
dd あなたのアプリケーションの名前。
dt Named ID
dd アプリを識別する/a-z-/で構成されたID。
dt アプリの概要
dd アプリの簡単な説明を入力してください。
dt コールバックURL
dd あなたのアプリケーションがWebアプリケーションである場合、ユーザーが後述するフォームで認証を終えた際にリダイレクトするURLを設定できます。
dt 権限
dd アプリケーションが要求する権限。ここで要求した機能だけがAPIからアクセスできます。
p.tip
| 権限はアプリ作成後も変更できますが、新たな権限を付与する場合、その時点で関連付けられているユーザーはすべて無効になります。
p
| アプリケーションを作成すると、作ったアプリの管理ページに進みます。
br
| アプリのシークレットキー(App Secret)が表示されていますので、メモしておいてください。
p.tip
| アプリに成りすまされる可能性があるため、極力このシークレットキーは公開しないようにしてください。
section
h3 ユーザーに認証させる
p あなたのアプリを使ってもらうには、ユーザーにアカウントへアクセスすることを許可してもらい、Misskeyにそのユーザーのアクセストークンを発行してもらう必要があります。
p 認証セッションを開始するには、<code>#{config.api_url}/auth/session/generate</code>へパラメータに<code>app_secret</code>としてApp Secretを含めたリクエストを送信します。
p
| そうすると、レスポンスとして認証セッションのトークンや認証フォームのURLが取得できます。
br
| この認証フォームのURLをブラウザで表示し、ユーザーにフォームを表示してください。
section
h4 あなたのアプリがコールバックURLを設定している場合
p ユーザーがアプリの連携を許可すると設定しているコールバックURLに<code>token</code>という名前でセッションのトークンが含まれたクエリを付けてリダイレクトします。
section
h4 あなたのアプリがコールバックURLを設定していない場合
p ユーザーがアプリの連携を許可したことを(何らかの方法で(たとえばボタンを押させるなど))確認出来るようにしてください。
p
| 次に、<code>#{config.api_url}/auth/session/userkey</code>へ<code>app_secret</code>としてApp Secretを、<code>token</code>としてセッションのトークンをパラメータとして付与したリクエストを送信してください。
br
| 上手くいけば、認証したユーザーのアクセストークンがレスポンスとして取得できます。おめでとうございます!
p アクセストークンを取得できたら、あとは簡単です。REST APIなら、リクエストにアクセストークンを<code>_userkey</code>(「自分のアクセストークンを取得したい場合」の方法で取得したアクセストークンの場合は<code>i</code>)としてパラメータに含めるだけです。

View file

@ -0,0 +1,14 @@
extend ../../base
block title
| ライブラリ
block content
h1 ライブラリ
p Misskey APIを便利に利用するためのライブラリ一覧です。
section
h2 .NET
ul
li: strong: a(href='https://github.com/syuilo/Misq') Misq (公式)

View file

@ -0,0 +1,9 @@
extend ../base
block title
| ライセンス
block content
h1 ライセンス
include ../../../../LICENSE

View file

@ -0,0 +1,199 @@
html {
font-family: sans-serif;
}
body {
margin: 0;
color: #34495e;
}
nav {
display: block;
float: left;
width: 210px;
}
nav ul {
display: block;
margin: 0 0 16px 0;
padding: 0 0 0 16px;
list-style: none;
}
nav ul li {
margin: 0;
padding: 0;
}
nav ul li p {
margin: 16px 0 0 0;
}
@media screen and (max-width: 910px) {
nav {
display: none;
}
}
main {
float: left;
box-sizing: border-box;
padding: 32px;
width: 100%;
max-width: 700px;
}
@media screen and (max-width: 700px) {
main {
font-size: 8px;
}
}
footer {
padding: 32px 0 0 0;
margin: 32px 0 0 0;
border-top: solid 1px #eee;
}
footer .contribution {
margin: 0 0 16px 0;
}
footer .copyright {
margin: 16px 0 0 0;
color: #aaa;
}
a {
text-decoration: none;
color: #f76d6c;
}
a:hover {
text-decoration: underline;
}
section {
margin: 32px 0;
}
h1 {
margin: 0 0 24px 0;
padding: 16px 0;
font-size: 1.5em;
border-bottom: solid 2px #eee;
}
h2 {
margin: 0 0 24px 0;
padding: 0 0 16px 0;
font-size: 1.4em;
border-bottom: solid 1px #eee;
}
h3 {
margin: 0;
padding: 0;
font-size: 1.25em;
}
h4 {
margin: 0;
}
p {
margin: 1em 0;
line-height: 1.6em;
}
p.tip {
position: relative;
padding: 12px 24px 12px 30px;
margin: 1em 0;
font-size: 0.9em;
border-left: 4px solid #f66;
background-color: #f8f8f8;
border-bottom-right-radius: 2px;
border-top-right-radius: 2px;
}
p.tip:before {
position: absolute;
top: 14px;
left: -12px;
background-color: #f66;
color: #fff;
content: "!";
width: 20px;
height: 20px;
border-radius: 100%;
text-align: center;
line-height: 20px;
font-weight: bold;
font-family: 'Dosis', 'Source Sans Pro', 'Helvetica Neue', Arial, sans-serif;
font-size: 14px;
}
table {
width: 100%;
border-spacing: 0;
border-collapse: collapse;
}
table thead {
font-weight: bold;
border-bottom: solid 2px #eee;
}
table tbody tr {
border-bottom: dashed 1px #eee;
}
table th, table td {
padding: 8px 16px;
}
table.entity tbody tr td:nth-child(1) {
font-family: Consolas, 'Courier New', Courier, Monaco, monospace;
}
table.entity tbody tr td:nth-child(2) {
font-style: italic;
}
table.entity tr td:nth-child(3):after {
margin-left: 8px;
opacity: 0.7;
}
table.entity tr.nullable td:nth-child(2):after {
content: "?";
opacity: 0.7;
}
table.entity tr.nullable td:nth-child(3):after {
content: "(Null許容)";
}
table.entity tr.optional {
opacity: 0.7;
}
table.entity tr.optional td:nth-child(3):after {
content: "(省略可能)";
}
table.entity tr.nullable.optional td:nth-child(3):after {
content: "(Null許容かつ省略可能)";
}
pre, code, var, samp, kbd {
font-family: Consolas, 'Courier New', Courier, Monaco, monospace;
}
code {
display: inline-block;
margin: 0 4px;
padding: 0 8px;
color: #525252;
background: #f8f8f8;
border-radius: 2px;
}
pre code {
display: block;
overflow: auto;
margin: 0;
padding: 32px;
}