19.1. アカウントにファイルをアップロードする¶
mahara_upload_file
あなた は、ウェブサービスを介して個人のアカウントにファイルを配置できます。これは、学習者がそうすることができることに同意した後、証明書または他のファイルを別のシステムから直接Maharaに転送したい場合に役立ちます。
このウェブサービス呼び出しでサポートされるワークフローは次のとおりです:
関数
'mahara_upload_file'
を使用して、ウェブサービストークンを設定します。学習者は、サードパーティアプリケーションのボタンをクリックして、将来のある時点、例えば、彼らが卒業して卒業証書を受け取ると、ファイルを自分のアカウントに配置できることを確認します。このボタンは、学習者をMaharaにログインさせ(アカウントをまだ持っていない場合はアカウントを作成し)、 ファイル 領域に移動するために特別に作成されています。この領域では、ファイルがアカウントにアップロードされたときに通知を受け取ることを示すアラートが表示されます。
注釈
これは最も基本的なリンクであり、ボタンとしてスタイルを設定できます:
<a href="https://domain/artefact/file/index.php?expectfile=1 &externalsource=application">ファイル転送に同意する</a>
SAMLを使用する場合、最初にIdPを通過してから、Maharaにリダイレクトする必要があるため、URLはより複雑になります。
<a href="https://domain/auth/saml/index.php?idpentityid=IdPinfo &wantsurl=https%3A%2F%2Fdomain%2Fartefact%2Ffile%2Findex.php %3Fexpectfile%3D1%26externalsource%3Dapplication">ファイル転送に同意する</a>
ここで、
domain はMaharaのURLです
application は、アップロード元を制限する識別子です
IdPinfo はIdPのURLです。
ある時点でファイルが予期されていることをMaharaに通知するデータベースエントリが作成されます。
ある時点で、ファイルはサードパーティのアプリケーションから転送されます。
ファイルはまとめて送信できます。学年度の終わりに、各ファイルを送信すると1回のAPI呼び出しが発生します。ファイルを配列で送信することはできません。
ファイルを送信するためのcURLコマンドは次のとおりです:
curl --location --request POST https://domain/webservice/rest/server.php' \
--form 'externalsource="identifier"' \ # the external source must match the one of the account
--form 'username="<please_fill_in>"' \ # the username of the account to receive the file
--form 'foldername="<please_fill_in>"' \ # the name of the folder which will hold the file, will be created if it doesn't exist
--form 'title="<please_fill_in>"' \ # the title for the uploaded file
--form 'description="<please_fill_in>"' \ # file description
--form 'tags[0]="tag1"' \ # (optional- this line can be removed if you don’t want to tag the file)
--form 'tags[1]="tag2"' \ # (optional- this line can be removed if you don’t want to tag the file)
--form 'wstoken="token"' \ # web services token you created
--form 'wsfunction="mahara_upload_file"' \
--form 'filetoupload=@"<please_fill_in>"' # the full path to a file