3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ProtoPediaAdvent Calendar 2021

Day 20

ProtoPedia APIで遊ぼう!

Last updated at Posted at 2021-12-19

自分の作った作品を登録することができるProtoPediaは、便利なAPIが存在します。
ここでは軽くそのAPIを説明したいと思います。

ProtoPedia API

ProtoPediaAPIの仕様はこちら!

現在提供されているのは、以下の4つの機能

  • 作品の一覧取得
  • 作品のイベント登録
  • 会社の開発素材の取得
  • 開発素材の取得

この中で、「作品のイベント登録」APIだけは、イベントのごとの認証コードが必要になるため、現時点で簡単に利用することができません。
今後、いろいろ機能が解放されていけば利用できるようになる可能性はあります。

今回は、その中の作品の一覧取得を解説します。

## 作品の一覧取得

文字通り、作品を取得することができるAPIです。
以下のようにGETリクエストを行うことで情報を取得することができます。

JSON形式
https://protopedia.net/api/prototypes.json?userNm=userNm&companySlug=companySlug&materialId=materialId&tagNm=tagNm&eventId=eventId&prototypeId=prototypeId&status=status&limit=limit&offset=offset
TSV形式
https://protopedia.net/api/prototypes.tsv?userNm=userNm&companySlug=companySlug&materialId=materialId&tagNm=tagNm&eventId=eventId&prototypeId=prototypeId&status=status&limit=limit&offset=offset

パラメータ

パラメータ 名称 説明
userNm ユーザー名 String 指定されたユーザーに関する作品を取得します *1
companySlug 会社スラグ String 指定された会社に関する作品を取得します *2
materialId 開発素材ID Number 指定された開発素材に関する作品を取得します *3
prototypeId 作品ID Number 指定された作品IDに関する作品を取得します *4
status ステータス Number 指定されたイベントに関する作品を取得します *5
tagNm タグ名 String 設定されているタグに関する作品を取得します *6
eventId イベントID Number 指定されたイベントに関する作品を取得します *7
limit 件数(初期値は100件) Number 取得する件数を指定します
offset 開始位置 Number 取得する開始位置を指定します

*1 ユーザー名について

メンバーの項目に追加されている**@以下**がユーザー名となります。
ユーザー名
※この場合は、「higedaruma」がユーザー名です

*2 会社スラグについて

会社一覧から、特定の企業ページを開き、URLのcompany以下が会社スラグとなります。
会社スラグ
※この場合は、「ma」が会社スラグです。

*3 開発素材IDについて

開発素材から、開発素材ページを開き、URLのmaterial以下が開発素材IDとなります。
開発素材ID
※この場合は、「463」が開発素材IDです。

*4 作品IDについて / *5 ステータスについて / *6 タグ名について

作品ページを開き、URLのprototype以下が作品IDとなります。

作品名の下にある**「開発中」**の表示がステータスです。
ステータスは、以下の4種類があります。

  1. アイデア
  2. 開発中
  3. 完成
  4. 供養

タグは、#で表示された部分で、**#**を除いたものがタグ名となります。

作品情報
※この場合は、「2556」が作成ID、開発中(2)が、ステータス、「VUI」、「twilio_online_contest_2021」、
「赤い芸人」がタグ名となります。

*5 イベントIDについて

イベントページを開き、URLのevent以下がイベントIDとなります。
イベント名
※この場合は、「21」がイベントIDです。

また、イベントに紐づいている場合、作品の関連イベントにイベント情報が掲載されています。
関連イベント

取得例

実際に、APIを使って作品を取得します。
今回はこちらの作品のJSON情報を取得します。
特定の作品の場合は、作品ID(prototypeId)を指定するだけです。

リクエストURL
https://protopedia.net/api/prototypes.json?prototypeId=2566
レスポンス情報

上記リクエストを発行すると、以下のようなJSON情報が返ってきます。

[
	{
		"id": 2566,
		"prototypeNm": "高橋コール",
		"summary": "自分の肉声を赤い芸人さん(カズレーザーじゃない)に変換して、ご指定の電話番号にお届けします!",
		"videoUrl": "https://youtu.be/2taR31aJlSg",
		"status": 2,
		"systemDescription": "1. twilioから、通知先の電話番号を取得し、メッセージを録音します。\r\n2. 録音したメッセージを、AzureのSpeechToTextで文字に変換します。\r\n3. 変換した文字を、CoeFontを使用し音声データに変換します。\r\n4. 取得した電話番号に、電話を行い、変換した音声データを再生します。\r\n\r\nVoiced by https://CoeFont.CLOUD",
		"freeComment": "赤い芸人さんからの**酷評に疲れた方必見**<br>\r\n**赤い芸人さんの声**で褒められませんか?<br>\r\n\r\nどんな言葉を話すかは、あなた次第!<br>\r\n\r\n酷評で疲れているあの人や、酷評で疲れている自分自身にもお使いください!<br>\r\n\r\nスマホなんていらない!\r\n## 電話さえあれば、夢が叶います!",
		"slideMode": 1,
		"teamNm": "",
		"officialLink": "",
		"relatedLink": "https://coefont.cloud/coefonts/34fa6f84-0664-4d93-9642-404cabc9edb8",
		"relatedLink2": "https://qiita.com/masaya3/items/2391c012d9c87c53680a",
		"relatedLink3": "https://qiita.com/masaya3/items/86388fad4a4e1ce2d6fc",
		"relatedLink4": "https://qiita.com/masaya3/items/429c12c2c742b5fc07f5",
		"relatedLink5": "",
		"releaseFlg": 2,
		"thanksFlg": 1,
		"mainUrl": "9848cd55-f27b-4399-9067-4741afda759a.png",
		"viewCount": 474,
		"goodCount": 11,
		"commentCount": 2,
		"userNm": "higedaruma",
		"companyNm": "日本マイクロソフト株式会社",
		"materialNm": "Microsoft Azure",
		"eventTitle": "Twilioオンラインコンテスト2021",
		"tags": "twilio_online_contest_2021,VUI,赤い芸人",
		"image1": "https://protopedia.net/pic/9848cd55-f27b-4399-9067-4741afda759a.png",
		"image2": null,
		"image3": null,
		"image4": null,
		"image5": null,
		"systemImage": "https://protopedia.net/pic/1c29d4b9-e755-4700-a5ee-300ee898b93a.png",
		"releaseAt": "2021-09-29T00:42:50+09:00",
		"createAt": "2021-09-27T08:24:04+09:00",
		"updateAt": "2021-10-04T10:25:14+09:00",
		"nid": null,
		"uuid": "5e428673-338a-4bd6-b1a3-84f8d9450532"
	},
	....
]
レスポンス情報
パラメータ 説明
id 作品ID
prototypeNm 作品タイトル
summary 概要
videoUrl 動画
status 作品ステータス
systemDescription システム概要
freeComment ストーリー
slideMode スライドモードのチェック状況
teamNm メンバー数
officialLink 作品のURL
relatedLink1 関連リンク
relatedLink2 関連リンク
relatedLink3 関連リンク
relatedLink4 関連リンク
relatedLink5 関連リンク
releaseFlg 公開状況
thanksFlg
mainUrl メイン画像名称(1枚目の画像)
viewCount 閲覧数
goodCount いいね数
commentCount コメント数
userNm ユーザー名(作者)
companyNm 開発素材の企業名
materialNm 開発素材名
eventTitle イベントタイトル名
tags タグ名(複数の場合はカンマ区切り)
image1 画像
image2 画像
image3 画像
image4 画像
image5 画像
systemImage システム構成の画像
releaseAt 公開日
createAt 作成日
updateAt 更新日

取得される情報は、少し癖があるので注意が必要です。

上記のレスポンス情報を見てもわかるように、開発素材イベント情報も含んだ状態で返却されます。
開発素材イベント情報は、以下のように結びついた形となっています。

  • イベント
    •  開発素材

例えば、この作品の場合、2つのイベントに登録されています。
イベント一覧

そして、作品には、3つの開発素材が登録されています。
開発素材一覧

今回の場合、1つの作品情報を取得しようとすると、
2つのイベント×3つの開発素材なので、6件のデータが返ってきますので、使用時にはご注意ください。

まとめ

ProtoPediaAPIを利用すれば、手軽に作品の情報を取得することができます。
ぜひこれらのAPIも活用して、面白いものを作ってみてはいかがでしょうか?

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?