Skip to content

筑波大学情報学群情報科学類(coins)のプリンタを利用するための非公式WebAPI

License

Notifications You must be signed in to change notification settings

SIY1121/CoinsRemotePrintAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CoinsRemotePrintAPI

筑波大学情報学群情報科学類(coins)のプリンタを利用するための非公式WebAPIです。

できること

  • pdfファイルの印刷
  • プリンタ一覧の取得
  • 印刷残高の取得

本APIを利用したクライアント

  • CoinsRemotePrintWebClient Web上で印刷できるクライアント
  • CoinsRemotePrintWindowsClient(準備中) Windows上でワンクリックでPDFを印刷できる
  • CoinsRemotePrintMacClient(誰か作ってくれないかな)

オープンソースにした理由

パスワードを悪用していないことを証明するため。

API詳細

セッションは使用しないため、毎回ユーザー名とパスワードを送信する必要があります。

生パスワードを使用する都合上、セッションの使用は危険と判断しました(生パスワード保持のためにファイルに書き込んでしまうため)

以下のAPIはすべてhttps://www.coins.tsukuba.ac.jp/~s1811317/printer/api/v1/配下に存在します。

UserInfo API

項目 説明
Description 与えられたユーザ名とパスワードの組が有効かを検証し、
有効であればidと本名を返す
URL /UserInfo.php
Method POST
BodyContentType multipart/form-data or
application/x-www-form-urlencoded
DataParam user:[string] ユーザー名
pass:[string] パスワード
SuccessResponse Code: 200
Content: {id: [string], name: [string], msg:[string]}
ErrorResponse Code: 400 Bad Request
必要なパラメータが指定されていません

Code: 401 Unauthorized
指定されたユーザー名またはパスワードは無効です

Code: 405 Method Not Allowed
POST以外で呼び出すとこのコードが返ります

Content: {msg:[string]}

PrinterInfo API

項目 説明
Description 利用可能なプリンタの一覧を返す
URL /PrinterInfo.php
Method POST
BodyContentType multipart/form-data or
application/x-www-form-urlencoded
DataParam user:[string] ユーザー名
pass:[string] パスワード
SuccessResponse Code: 200
Content: {data: [array], msg:[string]}
ErrorResponse Code: 400 Bad Request
必要なパラメータが指定されていません

Code: 401 Unauthorized
指定されたユーザー名またはパスワードは無効です

Code: 405 Method Not Allowed
POST以外で呼び出すとこのコードが返ります

Content: {msg:[string]}

PaperCut API

項目 説明
Description 印刷に使用するポイントの残高を取得する
URL /PaperCut.php
Method POST
BodyContentType multipart/form-data or
application/x-www-form-urlencoded
DataParam user:[string] ユーザー名
pass:[string] パスワード
SuccessResponse Code: 200
Content: {data: [string], msg:[string]}
ErrorResponse Code: 400 Bad Request
必要なパラメータが指定されていません

Code: 401 Unauthorized
指定されたユーザー名またはパスワードは無効です

Code: 405 Method Not Allowed
POST以外で呼び出すとこのコードが返ります

Content: {msg:[string]}

Print API

項目 説明
Description 印刷を行う
URL /Print.php
Method POST
BodyContentType multipart/form-data のみ
DataParam user:[string] ユーザー名
pass:[string] パスワード
printer:[string] 印刷に使用する、PrinterInfo APIで取得したプリンターID
up_file:[binary] 印刷するPDFファイル
SuccessResponse Code: 200
Content: {data: [string], msg:[string]}
ErrorResponse Code: 400 Bad Request
必要なパラメータが指定されていません

Code: 401 Unauthorized
指定されたユーザー名またはパスワードは無効です

Code: 405 Method Not Allowed
POST以外で呼び出すとこのコードが返ります

Content: {msg:[string]}

仕様

言語

このAPIはPHP 5.3で記述されています。 coins内のプリンタにアクセスするには www.coins.tsukuba.ac.jp上でプログラムを動かすのが 楽なので、上記環境で動作するPHP 5.3を選択しました。

正直PHP 7系の時代にこれは辛いです。 ライブラリ選定にも一苦労しました。

ライブラリ管理にはcomposerを使っています。

ライブラリ

Core

APIにアクセスすると、内部で各種印刷コマンドが実行されます。

About

筑波大学情報学群情報科学類(coins)のプリンタを利用するための非公式WebAPI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages