フィルターを使用して principal-list を呼び出します。
Adobe Connect Web Services API の使用開始にあたり、重要な概念を学び、基本を理解していきます。
Adobe Connect Web Services の使用開始にあたり、3 つの重要な概念を理解する必要があります。
ユーザーおよびグループである、プリンシパル
共有可能なコンテンツオブジェクトであり、会議、コースおよび Adobe Connect で作成できるほぼすべてのコンテンツを表す、SCO。SCO(「スノー」と同じ韻を踏む sko と発音)は、業界標準の共有可能なコンテンツオブジェクト参照モデル(SCORM)仕様と互換性があり、学習管理システム(LMS)で使用可能
プリンシパルがオブジェクトに対して何ができるかを定義する、権限
この章では、ライセンスを取得している Adobe Connect アプリケーションの種類に関わらず、Web Services で実行できる基本的なタスクについて説明します。多くのタスクは、ブラウザーで実行する方法として説明されています。アプリケーションから呼び出す場合は、XML 要求を使用している言語に翻訳します(Java™ でこれを行う方法の例については「XML 要求の送信」を参照してください)。
プリンシパル ID の検索
プリンシパルとは、サーバー上の SCO と相互作用するための定義済みの権限を持つユーザーまたはグループです。組織にユーザーおよびグループを作成して、権限を変更することができます。
Adobe Connect では、ビルトイングループも準備されています。管理者、制限付き管理者、作成者、トレーニングマネージャー、イベント管理者、学習者、会議主催者およびセミナー主催者です。ユーザーおよびグループをビルトイングループに追加することはできますが、ビルトイングループの権限を変更することはできません。
利用できるビルトイングループは、アカウントにより異なります。
Adobe Connect のユーザーとグループには、それぞれプリンシパル ID が設定されています。一部の API 呼び出しでは、プリンシパル ID はグループ ID またはユーザー ID と呼ばれ、他の値と区別されます。ユーザーやグループを識別する ID の値は、その名前に関わらず常に同じです。
ユーザーやグループのプリンシパル ID の取得
-
https://example.com/api/xml?action=principal-list&filter-name=jazz doehttps://example.com/api/xml?action=principal-list&filter-name=jazz doe
https://example.com/api/xml?action=principal-list&filter-name=jazz doe
完全一致させるには、filter-name、filter-login または filter-email を指定するのが最適です。サーバーのパフォーマンスに影響する可能性があるため、filter-like-name の使用には注意が必要です。
-
principal-id の応答から principal 要素を解析します。
<principal principal-id="2006282569" account-id="624520" type="user"has-children="false" is-primary="false" is-hidden="false"><name>jazz doe</name><login>jazzdoe@example.com</login><email>jazzdoe@newcompany.com</email></principal><principal principal-id="2006282569" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <name>jazz doe</name> <login>jazzdoe@example.com</login> <email>jazzdoe@newcompany.com</email> </principal><principal principal-id="2006282569" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <name>jazz doe</name> <login>jazzdoe@example.com</login> <email>jazzdoe@newcompany.com</email> </principal>
現在のユーザーのプリンシパル ID の取得
-
ユーザーがログインした後、common-info を呼び出します。
https://example.com/api/xml?action=common-infohttps://example.com/api/xml?action=common-infohttps://example.com/api/xml?action=common-info
-
user-id の応答から user 要素を解析します。
<user user-id="2007124930" type="user"><name>jazz doe</name><login>jazz@doe.com</login></user><user user-id="2007124930" type="user"> <name>jazz doe</name> <login>jazz@doe.com</login> </user><user user-id="2007124930" type="user"> <name>jazz doe</name> <login>jazz@doe.com</login> </user>
ここで、principal-id は Adobe Connect に認証されたユーザーを常に表すため、user-id と呼ばれています。グループがこのサーバーにログインすることはできません。そのため、他のアクションで、user-id 値をprincipal-id として渡すことができます。
プリンシパルやゲストの一覧表示
ユーザーのタイプを持つプリンシパルは、Adobe Connect ユーザーとして登録されていますが、ゲストのタイプを持つユーザーはゲストとして会議室に入ります。サーバーはゲストに関する情報を取得し、ゲストにプリンシパル ID を付与します。
サーバー上の全プリンシパルの一覧表示
-
パラメーターを指定しないで principal-list を呼び出します。
https://example.com/api/xml?action=principal-listhttps://example.com/api/xml?action=principal-listhttps://example.com/api/xml?action=principal-list
この呼び出しによりすべての Adobe Connect ユーザーが返されるため、大きな応答になります。
-
求めた値の応答から principal 要素を解析します。
<principal principal-id="2006282569" account-id="624520" type="user"has-children="false" is-primary="false" is-hidden="false"><name>jazz doe</name><login>jazzdoe@example.com</login><email>jazzdoe@newcompany.com</email></principal><principal principal-id="2006282569" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <name>jazz doe</name> <login>jazzdoe@example.com</login> <email>jazzdoe@newcompany.com</email> </principal><principal principal-id="2006282569" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <name>jazz doe</name> <login>jazzdoe@example.com</login> <email>jazzdoe@newcompany.com</email> </principal>
サーバー上の全ゲストの一覧表示
-
report-bulk-users を呼び出し、ゲストのタイプをフィルタリングします。
https://example.com/api/xml?action=report-bulk-users&filter-type=guesthttps://example.com/api/xml?action=report-bulk-users&filter-type=guesthttps://example.com/api/xml?action=report-bulk-users&filter-type=guest
-
応答から row 要素を解析します。
<row principal-id="51157227"><login>joy@acme.com</login><name>joy@acme.com</name><email>joy@acme.com</email><type>guest</type></row><row principal-id="51157227"> <login>joy@acme.com</login> <name>joy@acme.com</name> <email>joy@acme.com</email> <type>guest</type> </row><row principal-id="51157227"> <login>joy@acme.com</login> <name>joy@acme.com</name> <email>joy@acme.com</email> <type>guest</type> </row>
特定の管理者の下にいるユーザーすべての一覧表示
principal-id を指定して principal-info を呼び出すと、応答には該当するプリンシパルが表示されます。プリンシパルが、Adobe Connect で割り当てられた管理者の下にいる場合、応答には、manager 要素にプリンシパルの管理者に関するデータも表示されます。
<manager account-id="624520" disabled="" has-children="false" is-hidden="false" is-primary="false" principal-id="2006282569" type="user"> <ext-login>jazzdoe@example.com</ext-login> <login>jazzdoe@example.com</login> <name>jazz doe</name> <email>joy@example.com</email> <first-name>jazz</first-name> <last-name>doe</last-name> <x-2006293620>23456</x-2006293620> <x-2007017651>chicago</x-2007017651> </manager>
管理者の principal-id と principal-list を使用して、管理者に割り当てられているすべてのユーザーを一覧表示できます。
-
principal-list を呼び出し、manager-id でフィルタリングします。
https://example.com/api/xml?action=principal-list &filter-manager-id=2006282569https://example.com/api/xml?action=principal-list &filter-manager-id=2006282569https://example.com/api/xml?action=principal-list &filter-manager-id=2006282569
-
principal 要素の応答を解析します。
<principal principal-id="2006258745" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false" manager-id="2006282569"><name>Pat Lee</name><login>plee@mycompany.com</login><email>plee@mycompany.com</email></principal><principal principal-id="2006258745" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false" manager-id="2006282569"> <name>Pat Lee</name> <login>plee@mycompany.com</login> <email>plee@mycompany.com</email> </principal><principal principal-id="2006258745" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false" manager-id="2006282569"> <name>Pat Lee</name> <login>plee@mycompany.com</login> <email>plee@mycompany.com</email> </principal>
ユーザーの作成
新規ユーザーを作成するには、管理者権限が必要です。アドビでは、管理者グループに属するユーザーを作成することをお勧めしています。そうすることで、管理者権限を必要とする API 呼び出しをアプリケーションで使用できるようになります。
新規ユーザーの作成とようこそ電子メールの送信
-
アプリケーションで、管理者ユーザーとしてログインします。
ログインの様々な方法については「アプリケーションからのログイン」を参照してください。
-
いずれかのパラメーターを使用して principal-update を呼び出します。
https://example.com/api/xml?action=principal-update&first-name=jazz&last-name=doe&login=jazz99@doe.com&password=hello&type=user&send-email=true&has-children=0&email=jazz99@doe.comhttps://example.com/api/xml?action=principal-update &first-name=jazz&last-name=doe&login=jazz99@doe.com&password=hello &type=user&send-email=true&has-children=0&email=jazz99@doe.comhttps://example.com/api/xml?action=principal-update &first-name=jazz&last-name=doe&login=jazz99@doe.com&password=hello &type=user&send-email=true&has-children=0&email=jazz99@doe.com
type は user、has-children は 0 または false、send-email は true、email は有効な電子メールアドレスである必要があります。
サーバーから、ユーザーの電子メールアドレスに、ログイン情報を含むようこそ電子メールが送信されます。
-
ユーザーの principal-id の応答から principal 要素を解析します。
<principal type="user" principal-id="2007184341" has-children="0"account-id="624520"><login>jammdoe@example.com</login><ext-login>jammdoe@example.com</ext-login><name>jamm doe</name></principal><principal type="user" principal-id="2007184341" has-children="0" account-id="624520"> <login>jammdoe@example.com</login> <ext-login>jammdoe@example.com</ext-login> <name>jamm doe</name> </principal><principal type="user" principal-id="2007184341" has-children="0" account-id="624520"> <login>jammdoe@example.com</login> <ext-login>jammdoe@example.com</ext-login> <name>jamm doe</name> </principal>
ログイン ID として電子メールアドレスを使用しない新規ユーザーの作成
-
Adobe Connect Central で、管理/ユーザーとグループ/ログインおよびパスワードポリシーを編集に移動します。「ログインに電子メールアドレスを使用」が「いいえ」に設定されていることを確認します。
-
アプリケーションで、管理者ユーザーとしてログインします。
-
principal-update を呼び出して、新しいユーザーを作成し、login および email パラメーターの両方を渡します。
https://example.com/api/xml?action=principal-update&first-name=jazz&last-name=doe&login=jazz&email=jazzdoe@company.com&password=nothing&type=user&has-children=0https://example.com/api/xml?action=principal-update&first-name=jazz &last-name=doe&login=jazz&email=jazzdoe@company.com &password=nothing&type=user&has-children=0https://example.com/api/xml?action=principal-update&first-name=jazz &last-name=doe&login=jazz&email=jazzdoe@company.com &password=nothing&type=user&has-children=0
-
新規ユーザーの principal-id の応答を解析します。
<principal type="user" principal-id="2007184341" has-children="0"account-id="624520"><login>jazzdoe@example.com</login><ext-login>jazzdoe@example.com</ext-login><name>jazz doe</name></principal><principal type="user" principal-id="2007184341" has-children="0" account-id="624520"> <login>jazzdoe@example.com</login> <ext-login>jazzdoe@example.com</ext-login> <name>jazz doe</name> </principal><principal type="user" principal-id="2007184341" has-children="0" account-id="624520"> <login>jazzdoe@example.com</login> <ext-login>jazzdoe@example.com</ext-login> <name>jazz doe</name> </principal>
デフォルトの応答では、ユーザーが外部認証を使用して正常にログインするまで、ext-login は login と同じ値になります(「HTTP ヘッダー認証を使用したログイン」を参照)。
ユーザーの更新
ユーザーを作成した後、多くの場合ユーザーの情報を更新する必要が発生します。ユーザーのプリンシパル ID を指定してプリンシパルの更新を呼び出すことで、Adobe Connect でユーザーに対して定義している標準フィールドを更新することができます。標準フィールドには電子メール、ログイン、名および姓が含まれます。
プリンシパルのカスタムフィールドを定義している場合、acl-field-update を使用して更新できます。
ユーザーを更新するには管理者権限が必要なので、まずアプリケーションで管理者グループのユーザーとしてログインする必要があります。ユーザーとしてログインした場合、他のユーザーにプロファイルを各自で更新させることができません。
標準ユーザー情報の更新
-
管理者ユーザーとしてログインします。
-
フィルターを使用して principal-list を呼び出し、ユーザーのプリンシパル ID を取得します(「プリンシパル ID の検索」を参照)。
-
principal-update を呼び出して、ユーザーを更新します。
https://example.com/api/xml?action=principal-update&principal-id=2006282569&email=jazzdoe@newcompany.comhttps://example.com/api/xml?action=principal-update &principal-id=2006282569&email=jazzdoe@newcompany.comhttps://example.com/api/xml?action=principal-update &principal-id=2006282569&email=jazzdoe@newcompany.com
-
ステータスコードが ok の応答を解析します。
ユーザーのカスタムフィールドの更新
-
管理者ユーザーとしてログインします。
-
custom-fields を呼び出して、カスタムフィールドのフィールド ID を取得します。
https://example.com/api/xml?action=custom-fieldshttps://example.com/api/xml?action=custom-fieldshttps://example.com/api/xml?action=custom-fields
-
更新するプリンシパル ID、SCO ID またはアカウント ID を取得します。
この値が、acl-field-update に渡す ACL ID になります。
-
acl-field-update を呼び出し、カスタムフィールドの値を更新します。
https://example.com/api/xml?action=acl-field-update&field-id=x-2007396975&acl-id=2006258745&value=44444https://example.com/api/xml?action=acl-field-update&field-id=x-2007396975&acl-id=2006258745&value=44444https://example.com/api/xml?action=acl-field-update&field-id=x-2007396975&acl-id=2006258745&value=44444
カスタムフィールドの作成
カスタムフィールドは、ユーザーが定義する追加のデータフィールドです。カスタムフィールド更新を使用して、プリンシパルまたは SCO に最大 8 つのカスタムフィールドを定義できます。
デフォルトでは、カスタムフィールドを定義した後、Adobe Connect Central で編集するか、custom-field-update を呼び出すことで値を設定できます。
API を介してのみ値を更新できるように指定するには、object-type=object-type-read-only のパラメーターを指定して custom-field-update を呼び出します。
カスタムフィールドの定義およびユーザーへの設定
-
まず、custom-field-update を使用してフィールドを作成します。
https://example.com/api/xml?action=custom-field-update&object-type=object-type-principal&permission-id=manage&account-id=624520&name=Location&comments=adobe%20location&field-type=text&is-required=true&is-primary=false&display-seq=9https://example.com/api/xml?action=custom-field-update &object-type=object-type-principal&permission-id=manage &account-id=624520&name=Location&comments=adobe%20location &field-type=text&is-required=true&is-primary=false&display-seq=9https://example.com/api/xml?action=custom-field-update &object-type=object-type-principal&permission-id=manage &account-id=624520&name=Location&comments=adobe%20location &field-type=text&is-required=true&is-primary=false&display-seq=9
name フィールドで、アプリケーションに表示されるフィールド名を定義するため、スペルや大文字小文字の区別が適切になっているようにします。この例では、カスタムフィールドは、すべての Adobe Connect のプリンシパルに定義されています。
-
field-id の応答から field 要素を解析します。
<field field-id="2007184366" object-type="object-type-principal"display-seq="9" account-id="624520" is-primary="false"permission-id="manage" is-required="true" field-type="text"><comments>test</comments><name>Country</name></field><field field-id="2007184366" object-type="object-type-principal" display-seq="9" account-id="624520" is-primary="false" permission-id="manage" is-required="true" field-type="text"> <comments>test</comments> <name>Country</name> </field><field field-id="2007184366" object-type="object-type-principal" display-seq="9" account-id="624520" is-primary="false" permission-id="manage" is-required="true" field-type="text"> <comments>test</comments> <name>Country</name> </field>
-
ユーザーのプリンシパル ID を取得します(「プリンシパル ID の取得」を参照)。
-
acl-field-update を呼び出してフィールドの値を設定し、field-id、acl-id としてのユーザーのプリンシパル ID および値を渡します。
https://example.com/api/xml?action=acl-field-update&acl-id=2006258745&field-id=2007017474&value=San%20Franciscohttps://example.com/api/xml?action=acl-field-update &acl-id=2006258745&field-id=2007017474&value=San%20Franciscohttps://example.com/api/xml?action=acl-field-update &acl-id=2006258745&field-id=2007017474&value=San%20Francisco
-
ステータスコードが ok の応答を解析します。
グループの作成
ユーザーをグループに追加するには、アプリケーションの管理者ユーザーとして principal-update を呼び出す必要があります。
グループへのユーザーの追加
-
アプリケーションの管理者ユーザーとしてログインします。
-
(オプション)ユーザーがまだ存在しない場合、principal-update を使用してユーザーを作成します。
https://example.com/api/xml?action=principal-update&first-name=jazzwayjazz&last-name=doe&login=jazz@doe.com&password=nothing&type=user&has-children=0https://example.com/api/xml?action=principal-update &first-name=jazzwayjazz&last-name=doe&login=jazz@doe.com &password=nothing&type=user&has-children=0https://example.com/api/xml?action=principal-update &first-name=jazzwayjazz&last-name=doe&login=jazz@doe.com &password=nothing&type=user&has-children=0
-
(オプション)新規ユーザーの principal-id の応答を解析します。
-
ユーザーが既に存在する場合、principal-list を呼び出して、ユーザーのプリンシパル ID を取得します。
https://example.com/api/xml?action=principal-list&filter-type=userhttps://example.com/api/xml?action=principal-list&filter-type=userhttps://example.com/api/xml?action=principal-list&filter-type=user
-
principal-id の応答を解析します。
<principal principal-id="5611980" account-id="624520" type="user"has-children="false" is-primary="false" is-hidden="false"><name>Joy Black</name><login>joy@acme.com</login><email>joy@acme.com</email></principal><principal principal-id="5611980" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <name>Joy Black</name> <login>joy@acme.com</login> <email>joy@acme.com</email> </principal><principal principal-id="5611980" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <name>Joy Black</name> <login>joy@acme.com</login> <email>joy@acme.com</email> </principal>
-
principal-list を再度呼び出し、グループのプリンシパル ID を取得します。
https://example.com/api/xml?action=principal-list&filter-type=grouphttps://example.com/api/xml?action=principal-list&filter-type=grouphttps://example.com/api/xml?action=principal-list&filter-type=group
-
is-member=true を指定してgroup-membership-update を呼び出し、グループにユーザーを追加します。
https://example.com/api/xml?action=group-membership-update&group-id=4930296&principal-id=2006258745&is-member=truehttps://example.com/api/xml?action=group-membership-update &group-id=4930296&principal-id=2006258745&is-member=truehttps://example.com/api/xml?action=group-membership-update &group-id=4930296&principal-id=2006258745&is-member=true
principal-id は、ユーザーのプリンシパル ID です。
group-idは、グループのプリンシパル ID です。
is-member のパラメーターは、true である必要があります。
特定のユーザーがグループに属しているかどうかの確認
-
group-id、filter-is-member およびプリンシパルを識別するフィルターを指定して principal-list を呼び出します。
https://example.com/api/xml?action=principal-list&group-id=624523&filter-is-member=true&filter-like-name=bobhttps://example.com/api/xml?action=principal-list&group-id=624523 &filter-is-member=true&filter-like-name=bobhttps://example.com/api/xml?action=principal-list&group-id=624523 &filter-is-member=true&filter-like-name=bob
-
応答から principal 要素を解析します。応答が成功すると次のようになります。
<principal-list><principal principal-id="624660" account-id="624520" type="user"has-children="false" is-primary="false" is-hidden="false"><name>Bill Jones</name><login>bjones@acme.com</login><email>bjones@acme.com</email><is-member>true</is-member></principal></principal-list><principal-list> <principal principal-id="624660" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <name>Bill Jones</name> <login>bjones@acme.com</login> <email>bjones@acme.com</email> <is-member>true</is-member> </principal> </principal-list><principal-list> <principal principal-id="624660" account-id="624520" type="user" has-children="false" is-primary="false" is-hidden="false"> <name>Bill Jones</name> <login>bjones@acme.com</login> <email>bjones@acme.com</email> <is-member>true</is-member> </principal> </principal-list>
ユーザーがグループに属していない場合、principal-list 要素は空になります。
<?xml version="1.0" encoding="utf-8" ?><results><status code="ok" /><principal-list /></results><?xml version="1.0" encoding="utf-8" ?> <results> <status code="ok" /> <principal-list /> </results><?xml version="1.0" encoding="utf-8" ?> <results> <status code="ok" /> <principal-list /> </results>
グループに属するユーザーの確認
-
グループのプリンシパル ID を取得するには、フィルターを指定して principal-list を呼び出します。
https://example.com/api/xml?action=principal-list&filter-type=group&filter-name=developershttps://example.com/api/xml?action=principal-list&filter-type=group &filter-name=developershttps://example.com/api/xml?action=principal-list&filter-type=group &filter-name=developers
filter-type および filter-name を指定すると、principal-list は一意の一致を返します。
-
principal-id の応答を解析します。
<principal principal-id="2007105030" account-id="624520"type="group" has-children="true" is-primary="false"is-hidden="false"><name>developers</name><login>developers</login><is-member>false</is-member></principal><principal principal-id="2007105030" account-id="624520" type="group" has-children="true" is-primary="false" is-hidden="false"> <name>developers</name> <login>developers</login> <is-member>false</is-member> </principal><principal principal-id="2007105030" account-id="624520" type="group" has-children="true" is-primary="false" is-hidden="false"> <name>developers</name> <login>developers</login> <is-member>false</is-member> </principal>
-
group-id としてプリンシパル ID および filter-is-member=true を指定して、principal-list を再度呼び出します。
https://example.com/api/xml?action=principal-list&group-id=2007105030&filter-is-member=truehttps://example.com/api/xml?action=principal-list&group-id=2007105030 &filter-is-member=truehttps://example.com/api/xml?action=principal-list&group-id=2007105030 &filter-is-member=true
-
principal 要素の応答を解析します。
<principal principal-id="5698354" account-id="624520" type="group"has-children="true" is-primary="false" is-hidden="false"><name>Bob Jones</name><login>bobjones@acme.com</login><is-member>true</is-member></principal><principal principal-id="5698354" account-id="624520" type="group" has-children="true" is-primary="false" is-hidden="false"> <name>Bob Jones</name> <login>bobjones@acme.com</login> <is-member>true</is-member> </principal><principal principal-id="5698354" account-id="624520" type="group" has-children="true" is-primary="false" is-hidden="false"> <name>Bob Jones</name> <login>bobjones@acme.com</login> <is-member>true</is-member> </principal>
ユーザーが属する全グループの一覧表示
-
ユーザーの principal-id および filter-is-member=true を指定して、principal-list を呼び出します。
https://example.com/api/xml?action=principal-list&principal-id=2006258745&filter-is-member=truehttps://example.com/api/xml?action=principal-list &principal-id=2006258745&filter-is-member=truehttps://example.com/api/xml?action=principal-list &principal-id=2006258745&filter-is-member=true
-
principal 要素の応答を解析します。
<principal principal-id="5698354" account-id="624520" type="group"has-children="true" is-primary="false" is-hidden="false"><name>Bob Jones</name><login>bobjones@acme.com</login><is-member>true</is-member></principal><principal principal-id="5698354" account-id="624520" type="group" has-children="true" is-primary="false" is-hidden="false"> <name>Bob Jones</name> <login>bobjones@acme.com</login> <is-member>true</is-member> </principal><principal principal-id="5698354" account-id="624520" type="group" has-children="true" is-primary="false" is-hidden="false"> <name>Bob Jones</name> <login>bobjones@acme.com</login> <is-member>true</is-member> </principal>
SOC の検索
Adobe Connect 上のオブジェクトはすべて、共有可能なコンテンツオブジェクト(SCO)です。共有可能という言葉は、コンテンツがコースやカリキュラムに結合され、それらの間で共有される、学習管理システムに由来しています。
サーバー上で、コースやカリキュラムに他のコンテンツオブジェクトを組み合わせて、SCO を任意のコンテンツオブジェクトにすることができます。コース、カリキュラム、プレゼンテーションおよび他のコンテンツタイプが SCO となります。会議、イベント、フォルダー、ツリー、リンク、グラフィックファイルやその他のあらゆるオブジェクトも SCO です。
各 SCO には、SCO ID と呼ばれる一意の整数識別子があります。SCO ID はサーバー全体で一意になっています。また、Adobe Connect がホストするアカウントでは、SCO ID はすべてのアカウント全体で一意になっています。
各 SCO には、コンテンツ、コースおよび会議などのタイプも設定されています。SCO ID およびタイプの値は、SCO 情報の応答や他のアクションで確認できます。
<sco account-id="624520" disabled="" display-seq="0" folder-id="2006258747" icon="producer" lang="en" max-retries="" sco-id="2006334909" source-sco-id="" type="content" version="1">
SCO の特徴
様々な呼び出しの XML 応答に関して、SCO にはとても多くの特徴があります。
SCO の識別子は、一部のアクションでは SCO ID と呼ばれますが、他のアクションではフォルダー ID または ACL ID と呼ばれたり、別の名前で呼ばれたりすることもあります。とは言え、それらは同じ一意の ID になります。
各 SCO には、ユーザーやグループの様々なプリンシパルがアクセスできます。アクセスコントロールリスト(ACL)で、SCO にアクセスできる特定のプリンシパルを定義します。
各 SCO には、ドメイン名(http://example.com など)と URL パス(/f2006123456/ など)の 2 つの部分を含む一意の URL があります。これらを連結させて、SCO にアクセスする完全な URL を形成することができます。
各 SCO には、フォルダー階層のどこにあるかを示すナビゲーションパスがあります。
各 SCO には、アクセスできるプリンシパルごとに権限が定義されています。
一部の SCO には、説明フィールドがあり、SCO に関する情報を提供するテキスト文字列を含んでいます。
多くの場合、SCO の ID またはそれに関する情報を探す必要があります。SCO は特定のフォルダー階層に配置され、フォルダーには、上位にあるか、共有コンテンツまたはテンプレートを含むか、ユーザーコンテンツとテンプレートを保持するかをなどを示す名前が付けられます。
sco-shortcuts を呼び出すと、フォルダーのリストが返されます。フォルダーに様々なタイプがあることに注目します。
<?xml version="1.0" encoding="utf-8" ?> <results> <status code="ok" /> <shortcuts> <sco tree-id="624530" sco-id="2006258751" type="my-meeting-templates"> <domain-name>http://example.com</domain-name> </sco> <sco tree-id="624530" sco-id="2006258750" type="my-meetings"> <domain-name>http://example.com</domain-name> </sco> <sco tree-id="624529" sco-id="624529" type="meetings"> <domain-name>http://example.com</domain-name> </sco> <sco tree-id="624530" sco-id="624530" type="user-meetings"> <domain-name>http://example.com</domain-name> </sco> ... </shortcuts> </results>
この例に示されているフォルダーは、会議用のものですが、他のタイプの SCO 用のフォルダーも同様のパターンになっています。次のように、各フォルダータイプには、特定のアクセス権限を含む、特定のタイプのオブジェクトが格納されます。
コンテンツ、コース、会議、イベント、セミナー
これらは、共有会議、共有トレーニングなど共有フォルダーです。Adobe Connect 管理者はこのフォルダーにアクセスできます。管理者は、管理権限を任意のユーザーに割り当てることができますが、フォルダーに関連付けられたビルトイングループのメンバーのみが、フォルダー内に新しいコンテンツまたは会議を作成できます。
ユーザーコンテンツ、ユーザー会議、ユーザーコース、ユーザーイベント
これらのフォルダーには、それぞれその中でコンテンツを作成できるユーザーごとのフォルダーが含まれています(例えば、会議の主催者またはトレーニング開発者ごとに 1 つのフォルダー)。
マイコース、マイイベント、マイ会議、マイ会議テンプレート、マイコンテンツ
ユーザーは、これらのフォルダーに独自のコンテンツを作成して、コンテンツに対する管理権限を持ちます。例えば、会議の主催者はマイ会議フォルダーで会議を作成し、それらの会議の管理権限を持ちます。
共有会議テンプレート
このフォルダーは、共有会議フォルダー内にあります。会議テンプレートを含み、共有会議の権限を引き継ぎます。
任意のフォルダーのコンテンツを一覧表示して、特定の SCO に関する情報を取得できます。SCO を検索する必要があるが SCO ID がないという場合、SCO ショートカットおよび SCO 拡張コンテンツを指定して、各フォルダーを検索します。SCO 検索は特定の種類の SCO しか返さないので、使用しません。
SCO ID がわからない場合の SCO の検索
-
sco-shortcuts を呼び出し、Adobe Connect のルートフォルダーのリストを取得します。
https://example.com/api/xml?action=sco-shortcutshttps://example.com/api/xml?action=sco-shortcutshttps://example.com/api/xml?action=sco-shortcuts
-
SCO を含むと思われるルートフォルダーのタイプの応答を解析します(例えば、ユーザーが作成したコースであればマイコース)。
-
sco-id の結果の sco 要素を解析します。
<sco tree-id="4930295" sco-id="2006258748" type="my-courses"><domain-name>http://example.com</domain-name></sco><sco tree-id="4930295" sco-id="2006258748" type="my-courses"> <domain-name>http://example.com</domain-name> </sco><sco tree-id="4930295" sco-id="2006258748" type="my-courses"> <domain-name>http://example.com</domain-name> </sco>
-
sco-expanded-contents を呼び出し、フォルダーのコンテンツを表示して、可能であれば完全一致フィルターを追加します。
https://example.com/api/xml?action=sco-expanded-contents&sco-id=2006258748&filter-name=All About Web Communitieshttps://example.com/api/xml?action=sco-expanded-contents &sco-id=2006258748&filter-name=All About Web Communitieshttps://example.com/api/xml?action=sco-expanded-contents &sco-id=2006258748&filter-name=All About Web Communities
フィルターには複数の選択肢があります。
SCO の名前または URL がわかっている場合、name または url-path(filter-name や filter-url-path など)の完全一致フィルター
date-begin、date-created または date-modified などが 1 つでもわかっている場合、その日付より前か後かを指定する日付フィルター(filter-gt-date や filter-lt-date)
正確な SCO 名がわからない場合、部分的な名前フィルター(filter-like-name など)。ただし、このフィルターの使用には、システムパフォーマンスに影響を与える可能性あり
-
sco-id の応答を解析します。
<sco depth="1" sco-id="2006745671" folder-id="2006258748" type="folder"icon="folder" lang="en" source-sco-id="2006745669" display-seq="0"source-sco-type="14"><name>A Day in the Life Resources</name><url-path>/f28435879/</url-path><date-created>2006-06-12T14:47:59.903-07:00</date-created><date-modified>2006-06-12T14:47:59.903-07:00</date-modified></sco><sco depth="1" sco-id="2006745671" folder-id="2006258748" type="folder" icon="folder" lang="en" source-sco-id="2006745669" display-seq="0" source-sco-type="14"> <name>A Day in the Life Resources</name> <url-path>/f28435879/</url-path> <date-created>2006-06-12T14:47:59.903-07:00</date-created> <date-modified>2006-06-12T14:47:59.903-07:00</date-modified> </sco><sco depth="1" sco-id="2006745671" folder-id="2006258748" type="folder" icon="folder" lang="en" source-sco-id="2006745669" display-seq="0" source-sco-type="14"> <name>A Day in the Life Resources</name> <url-path>/f28435879/</url-path> <date-created>2006-06-12T14:47:59.903-07:00</date-created> <date-modified>2006-06-12T14:47:59.903-07:00</date-modified> </sco>
SCO に関する情報の取得
-
sco-id を指定して、sco-infoを呼び出します。
https://example.com/api/xml?action=sco-info&sco-id=2006745669https://example.com/api/xml?action=sco-info&sco-id=2006745669https://example.com/api/xml?action=sco-info&sco-id=2006745669
-
name、url-path またはその他の値の応答を解析します。
<sco account-id="624520" disabled="" display-seq="0"folder-id="2006258748" icon="curriculum" lang="en" max-retries=""sco-id="2006745669" source-sco-id="" type="curriculum" version="0"><date-begin>2006-06-12T14:45:00.000-07:00</date-begin><date-created>2006-06-12T14:47:59.903-07:00</date-created><date-modified>2006-06-12T14:47:59.903-07:00</date-modified><name>A Day in the Life</name><url-path>/day/</url-path></sco><sco account-id="624520" disabled="" display-seq="0" folder-id="2006258748" icon="curriculum" lang="en" max-retries="" sco-id="2006745669" source-sco-id="" type="curriculum" version="0"> <date-begin>2006-06-12T14:45:00.000-07:00</date-begin> <date-created>2006-06-12T14:47:59.903-07:00</date-created> <date-modified>2006-06-12T14:47:59.903-07:00</date-modified> <name>A Day in the Life</name> <url-path>/day/</url-path> </sco><sco account-id="624520" disabled="" display-seq="0" folder-id="2006258748" icon="curriculum" lang="en" max-retries="" sco-id="2006745669" source-sco-id="" type="curriculum" version="0"> <date-begin>2006-06-12T14:45:00.000-07:00</date-begin> <date-created>2006-06-12T14:47:59.903-07:00</date-created> <date-modified>2006-06-12T14:47:59.903-07:00</date-modified> <name>A Day in the Life</name> <url-path>/day/</url-path> </sco>
SCO への URL の構築
-
sco-shortcuts を呼び出します。
https://example.com/api/xml?action=sco-shortcutshttps://example.com/api/xml?action=sco-shortcutshttps://example.com/api/xml?action=sco-shortcuts
-
任意の sco 要素の domain-name 値の応答を解析します。
<sco tree-id="624530" sco-id="2006258750" type="my-meetings"><domain-name>http://example.com</domain-name></sco><sco tree-id="624530" sco-id="2006258750" type="my-meetings"> <domain-name>http://example.com</domain-name> </sco><sco tree-id="624530" sco-id="2006258750" type="my-meetings"> <domain-name>http://example.com</domain-name> </sco>
-
sco-id を指定して、sco-infoを呼び出します。
https://example.com/api/xml?action=sco-info&sco-id=2006334909https://example.com/api/xml?action=sco-info&sco-id=2006334909https://example.com/api/xml?action=sco-info&sco-id=2006334909
-
url-path の応答を解析します。
<sco account-id="624520" disabled="" display-seq="0"folder-id="2006258747" icon="producer" lang="en"max-retries="" sco-id="2006334909" source-sco-id=""type="content" version="1"><date-created>2006-05-11T12:00:02.000-07:00</date-created><date-modified>2006-05-16T15:22:25.703-07:00</date-modified><name>Test Quiz</name><url-path>/quiz/</url-path><passing-score>10</passing-score><duration>15100.0</duration><section-count>6</section-count></sco><sco account-id="624520" disabled="" display-seq="0" folder-id="2006258747" icon="producer" lang="en" max-retries="" sco-id="2006334909" source-sco-id="" type="content" version="1"> <date-created>2006-05-11T12:00:02.000-07:00</date-created> <date-modified>2006-05-16T15:22:25.703-07:00</date-modified> <name>Test Quiz</name> <url-path>/quiz/</url-path> <passing-score>10</passing-score> <duration>15100.0</duration> <section-count>6</section-count> </sco><sco account-id="624520" disabled="" display-seq="0" folder-id="2006258747" icon="producer" lang="en" max-retries="" sco-id="2006334909" source-sco-id="" type="content" version="1"> <date-created>2006-05-11T12:00:02.000-07:00</date-created> <date-modified>2006-05-16T15:22:25.703-07:00</date-modified> <name>Test Quiz</name> <url-path>/quiz/</url-path> <passing-score>10</passing-score> <duration>15100.0</duration> <section-count>6</section-count> </sco>
url-path には、先頭と末尾の両方にスラッシュがあります。url-path は、report-my-meetings、report-my-training、またはそれを返す任意の呼び出しから取得できます。
-
url-path を domain-name と連結します。
http://example.com/f2006258748/http://example.com/f2006258748/http://example.com/f2006258748/
ファイルのダウンロード
Adobe Connect から、ユーザーのローカルコンピューターに zip ファイルをダウンロードできます。zip ファイルは SCO です。ダウンロードするには、次のような zip ファイルへのダウンロード URL を構築する必要があります。
http://server-domain/url-path/output/url-path.zip?download=zip
既にサーバーのドメイン名(example.com など)がわかっていればそれを使用します。そうでない場合、sco-shortcuts を呼び出して取得できます。
サーバーからの zip ファイルのダウンロード
-
sco-shortcuts を呼び出します。
https://example.com/api/xml?action=sco-shortcutshttps://example.com/api/xml?action=sco-shortcutshttps://example.com/api/xml?action=sco-shortcuts
-
応答から domain-name 値を抽出します。
http://example.comhttp://example.comhttp://example.com
-
zip ファイルの sco-id を指定して、sco-infoを呼び出します。
https://example.com/api/xml?action=sco-info&sco-id=2006258747https://example.com/api/xml?action=sco-info&sco-id=2006258747https://example.com/api/xml?action=sco-info&sco-id=2006258747
SCO は zip ファイル全体です。
-
url-path 要素の応答を解析します。
<sco account-id="624520" disabled="" display-seq="0" folder-id="624522"icon="folder" lang="en" max-retries="" sco-id="2006258747"source-sco-id="" type="folder" version="1"><date-created>2006-04-18T10:21:47.020-07:00</date-created><date-modified>2006-04-18T10:21:47.020-07:00</date-modified><name>joy@acme.com</name><url-path>/f124567890/</url-path></sco><sco account-id="624520" disabled="" display-seq="0" folder-id="624522" icon="folder" lang="en" max-retries="" sco-id="2006258747" source-sco-id="" type="folder" version="1"> <date-created>2006-04-18T10:21:47.020-07:00</date-created> <date-modified>2006-04-18T10:21:47.020-07:00</date-modified> <name>joy@acme.com</name> <url-path>/f124567890/</url-path> </sco><sco account-id="624520" disabled="" display-seq="0" folder-id="624522" icon="folder" lang="en" max-retries="" sco-id="2006258747" source-sco-id="" type="folder" version="1"> <date-created>2006-04-18T10:21:47.020-07:00</date-created> <date-modified>2006-04-18T10:21:47.020-07:00</date-modified> <name>joy@acme.com</name> <url-path>/f124567890/</url-path> </sco>
-
次のような、ダウンロード URL を構築します。
https://example.com/quiz/output/quiz.zip?download=ziphttps://example.com/quiz/output/quiz.zip?download=ziphttps://example.com/quiz/output/quiz.zip?download=zip
.zip を追加する前に、必ず url-path 値から末尾のスラッシュを削除します(したがって、/quiz/.zipではなく /quiz.zip のような値になります)。
権限の確認
権限により、プリンシパルが SCO と相互作用できる方法を定義します。
プリンシパルが特定の SCO に対してどのような権限を持っているかを示す権限マッピングは、アクセスコントロールリストまたは ACL と呼ばれます。ACL は、次の 3 つの情報で構成されています。
プリンシパルの ID(principal-id)
対象となる SCO、アカウントやプリンシパルの ID。権限呼び出しで、acl-id と呼ばれる。他の呼び出しで、ID は sco-id、account-id や principal-id と呼ばれる場合もある
permission-id の有効な値の 1 つであり、プリンシパルが持つ権限レベルを示すキーワード
プリンシパルが SCO に対して持っている許可の確認
-
acl-id と principal-id の両方を指定して、permissions-info を呼び出します。
https://example.com/api/xml?action=permissions-info&acl-id=2006334909&principal-id=2006258745https://example.com/api/xml?action=permissions-info&acl-id=2006334909 &principal-id=2006258745https://example.com/api/xml?action=permissions-info&acl-id=2006334909 &principal-id=2006258745
SCO に対する権限を確認する際、acl-id は sco-id と同じものになります。acl-id は、principal-id や account-id として使用することもできます。
-
permission-id の応答を解析します。
<?xml version="1.0" encoding="utf-8" ?><results><status code="ok" /><permission acl-id="2007035246" permission-id="view"principal-id="2006258745" /></results><?xml version="1.0" encoding="utf-8" ?> <results> <status code="ok" /> <permission acl-id="2007035246" permission-id="view" principal-id="2006258745" /> </results><?xml version="1.0" encoding="utf-8" ?> <results> <status code="ok" /> <permission acl-id="2007035246" permission-id="view" principal-id="2006258745" /> </results>
プリンシパルが SCO に対する明示的な権限を持っていない場合(つまり、permission-id="" の場合)、SCO の親オブジェクトに対するプリンシパルの権限が適用されます。
SCO に対する、全プリンシパルの権限の確認
-
acl-id を指定し、principal-id は指定しないで、permissions-info を呼び出します。
https://example.com/api/xml?action=permissions-info&acl-id=2006293572https://example.com/api/xml?action=permissions-info&acl-id=2006293572https://example.com/api/xml?action=permissions-info&acl-id=2006293572
-
principal 要素を反復処理し、それらを解析して permission-id 値を探します。
<principal principal-id="2596608" is-primary="false" type="user"has-children="false" permission-id="view"><name>Jay Arnold</name><login>jay@example.com</login></principal><principal principal-id="2596608" is-primary="false" type="user" has-children="false" permission-id="view"> <name>Jay Arnold</name> <login>jay@example.com</login> </principal><principal principal-id="2596608" is-primary="false" type="user" has-children="false" permission-id="view"> <name>Jay Arnold</name> <login>jay@example.com</login> </principal>
有効な権限の値は permission-id に表示されます。