PortalPy モジュール
このヘルプ トピックでは、Portal for ArcGIS の管理スクリプトの記述に使用できる、PortalPy モジュールに含まれるすべてのクラスとメソッドについて記載します。
クラス: Portal
ポータルへの URL 接続を表すオブジェクトです。Portal オブジェクトをインスタンス化するには、次のようなコードを実行します。
PortalPy.Portal(portalUrl, user, password)
使用可能な Portal のメソッドは、次のセクションに示しています。メソッドを操作する前に、以下を検討してください。
- グループ ID: 多くのグループ関数では、グループ ID が必要です。この ID は、グループの名前やタイトルとは異なります。グループ ID を確認するには、search_groups 関数を使用し、タイトルを指定してグループ ID を取得します。
- 時間: 多くのメソッドは、時間フィールドを返します。すべての時間は、1970 年 1 月 1 日からのミリ秒数で返されます。Python では、時間は 1970 年 1 月 1 日からの秒数で表す必要があります。そのため、PortalPy から返された時間を必ず 1000 で割ってください。次の例は、PortalPy の時間を Python の時間に変換する方法を示しています。
group = portalAdmin.get_group('67e1761068b7453693a0c68c92a62e2e') pythontime = time.ctime(group['created']/1000)
PortalPy のメソッド
以下では、使用できる Portal のメソッドについて説明します。
_init_
Portal のコンストラクタ。これを実行するには、ポータルの URL の指定が必須であり、必要に応じてユーザ名とパスワードを指定します。
_init_(self, url, username=None, password=None, key_file=None, cert_file=None, expiration=60, referer=None, proxy_host=None, proxy_port=None, connection=None, workdir=r'c:\users\davi3690\appdata\local\temp\2')
add_group_users
指定されたグループにユーザを追加します。Portal オブジェクトのユーザが、ポータル全体の管理者であるか、明示的なグループの所有者である場合にのみ、このメソッドを使用できます。
add_group_users(self, user_names, group_id)
引数
パラメータ |
説明 |
---|---|
user_names |
必須の文字列。カンマ区切りのユーザ。 |
group_id |
必須の文字列。グループ ID を指定します。 |
戻り値
グループに追加されなかったユーザが格納された、not_added のキーを含むディクショナリ。
create_group
グループを作成し、正常に作成した場合はグループ ID を返します。
create_group(self, title, tags, description=None, snippet=None, access='public', thumbnail=None, is_invitation_only=False, sort_field='avgRating', sort_order='desc', is_view_only=False)
引数
パラメータ |
説明 |
---|---|
title |
必須の文字列。グループの名前。 |
tags |
必須の文字列。カンマ区切りのタグのリスト。 |
description |
オプションの文字列。グループの詳細な説明。 |
snippet |
オプションの文字列。250 文字未満のグループの要約。 |
access |
オプションの文字列。private、public、または org を指定可能。 |
thumbnail |
オプションの文字列。グループの画像の URL。 |
isInvitationOnly |
オプションのブール値。ユーザが要求して加入できるかどうかを定義します。 |
sort_field |
オプションの文字列。グループで共有されたアイテムの並べ替え方法を指定します。 |
sort_order |
オプションの文字列。昇順の場合は asc、降順の場合は desc。 |
is_view_only |
オプションのブール値。グループが検索可能かどうかを定義します。 |
戻り値
グループ ID を表す文字列。
create_group_from_dict
グループを作成し、正常に作成した場合はグループ ID を返します。通常は、このメソッドではなく create_group を使用することをお勧めします。このメソッドは、別の PortalPy 呼び出しから返されたグループ ディクショナリを受け取って、それをコピーすることができます。
create_group_from_dict(self, group, thumbnail=None)
引数
パラメータ |
説明 |
---|---|
group |
ディクショナリ オブジェクト |
thumbnail |
画像の URL |
例
create_group({'title': 'Test', 'access':'public'})
delete_group
グループを削除します。
delete_group(self, group_id)
引数
パラメータ |
説明 |
---|---|
group_id |
削除対象のグループの ID を含む文字列。 |
戻り値
操作が成功したか失敗したかを示すブール値。
delete_user
ユーザをポータルから削除します。必要に応じて、グループとアイテムを削除または再割り当てします。ポータルのユーザがグループまたはアイテムを所有している場合、そのユーザを削除することはできません。カスケードすることを選択した場合、それらのアイテムとグループは、reassign_to オプションで指定したユーザに再割り当てされます。カスケードしないことを選択した場合、削除が成功するか失敗するかは、ユーザのアイテムとグループがすでに転送されているかどうかによって変わります。
カスケードする場合、このメソッドは最大 10,000 個のアイテムを削除します。ユーザが 10,000 個よりも多くのアイテムを持っている場合、このメソッドは失敗します。
delete_user(self, username, cascade=False, reassign_to=None)
引数
パラメータ |
説明 |
---|---|
username |
必須の文字列。ユーザの名前。 |
cascade |
オプションのブール値。true を指定すると、アイテムとグループを再割り当てします。 |
reassign_to |
オプションの文字列。アイテムとグループの新しい所有者。 |
戻り値
操作が成功したか失敗したかを示すブール値。
generate_token
新しいトークンを生成して返しますが、再ログインはしません。Portal クラスを使用してポータルを呼び出す場合、このメソッドは不要です。このメソッドは、Portal クラスの外部でポータルを呼び出す場合のために提供されています。
ポータルでは、トークンベースの認証メカニズムが使用されます。この認証機構では、呼び出すためにユーザが認証情報を入力し、短期間有効なトークンが使用されます。ArcGIS REST API に対して行われるほとんどの呼び出しでは、トークンが必要になります。このトークンは、ArcGIS REST API に対するリクエストに追加できます。
generate_token(self, username, password, expiration=60)
引数
パラメータ |
説明 |
---|---|
username |
必須の文字列。ユーザの名前。 |
password |
必須の文字列。ユーザのパスワード。 |
expiration |
オプションの整数。トークンの有効期限が切れるまでの時間(分)。 |
戻り値
トークンを含む文字列。
get_group
指定された group_id のグループ情報を返します。
get_group(self, group_id)
引数
パラメータ |
説明 |
---|---|
group_id |
必須の文字列。グループを示します。 |
戻り値
グループの情報を含むディクショナリ オブジェクト。ディクショナリ オブジェクトに含まれる可能性のあるキーを以下に示します。
パラメータ |
説明 |
---|---|
title |
グループの名前。 |
isInvitationOnly |
true に設定されている場合、ユーザはこのグループへの加入を申し込むことができません。 |
owner |
グループの所有者のユーザ名。 |
description |
グループの説明。 |
snippet |
グループの簡単な要約。 |
tags |
グループを説明するユーザ定義タグ。 |
phone |
グループの連絡先情報。 |
thumbnail |
http://<community-url>/groups/<groupId>/info に関連するファイル名。 |
created |
グループが作成された時間(1970 年 1 月 1 日からのミリ秒)。 |
modified |
グループが最後に変更された時間(1970 年 1 月 1 日からのミリ秒)。 |
access |
可能な値は、private、org、または public です。 |
userMembership |
username および memberType というキーを含むディクショナリ。 |
memberType |
呼び出し元ユーザのアクセス権限(owner、admin、member、none)を示します。 |
get_group_members
指定されたグループのメンバーを返します。
get_group_members(self, group_id)
引数
パラメータ |
説明 |
---|---|
group_id |
必須の文字列。グループを示します。 |
戻り値
キー(owner、admins、および users)を含むディクショナリ。
パラメータ |
説明 |
---|---|
owner |
文字列値。グループの所有者。 |
admins |
文字列のリスト。通常は、owner と同じです。 |
users |
文字列のリスト。グループのメンバー。 |
例
以下では、グループ内のユーザを出力しています。
response = portal.get_group_members("67e1761068b7453693a0c68c92a62e2e")
for user in response['users'] :
print user
get_group_thumbnail
指定された group_id のサムネイルを構成するバイトを返します。
get_group_thumbnail(self, group_id)
引数
パラメータ |
説明 |
---|---|
group_id |
必須の文字列。グループのサムネイルを指定します。 |
戻り値
画像を表すバイト。
例
response = portal.get_group_thumbnail("67e1761068b7453693a0c68c92a62e2e")
f = open(filename, 'wb')
f.write(response)
get_org_users
ポータルの組織内のすべてのユーザを返します。
get_org_users(self, max_users=1000)
引数
パラメータ |
説明 |
---|---|
max_users |
オプションの整数。返されるユーザの最大数。 |
戻り値
ディクショナリのリスト。各ディクショナリには、以下のキーが含まれています。
キー |
値 |
---|---|
username |
文字列 |
storageUsage |
整数 |
storageQuota |
整数 |
description |
文字列 |
tags |
文字列のリスト |
region |
文字列 |
created |
整数。アカウントが作成された時間(1970 年 1 月 1 日からのミリ秒)。 |
modified |
整数。アカウントが最後に変更された時間(1970 年 1 月 1 日からのミリ秒)。 |
|
文字列 |
culture |
文字列 |
orgId |
文字列 |
preferredView |
文字列 |
groups |
文字列のリスト |
role |
文字列(org_user、org_publisher、org_admin) |
fullName |
文字列 |
thumbnail |
文字列 |
idpUsername |
文字列 |
例
次の例では、ポータル内のすべてのユーザ名を出力しています。
resp = portalAdmin.get_org_users()
for user in resp:
print user['username']
get_properties
ポータルのプロパティを返します。force=True を指定しなければ、キャッシュが使用されます。
get_properties(self, force=False)
get_user
指定されたユーザ名のユーザ情報を返します。
get_user(self, username)
引数
パラメータ |
説明 |
---|---|
username |
必須の文字列。必要な情報を持つユーザ名。 |
戻り値
ユーザが見つかった場合、以下のキーを含むディクショナリ オブジェクトを返します。ユーザが見つからなかった場合は、何も返されません。
キー |
値 |
---|---|
access |
文字列 |
created |
整数。アカウントが作成された時間(1970 年 1 月 1 日からのミリ秒)。 |
culture |
文字列。2 文字の言語コード(en)。 |
description |
文字列 |
|
文字列 |
fullName |
文字列 |
idpUsername |
文字列。エンタープライズ システム内のユーザの名前。 |
groups |
ディクショナリのリスト。ディクショナリのキーのリストについては、「get_group」をご参照ください。 |
modified |
整数。アカウントが最後に変更された時間(1970 年 1 月 1 日からのミリ秒)。 |
orgId |
文字列。組織 ID。 |
preferredView |
文字列。値は、Web、GIS、または null のいずれかです。 |
region |
文字列。none または 2 文字の国コード。 |
role |
文字列(org_user、org_publisher、org_admin) |
storageUsage |
整数 |
storageQuota |
整数 |
tags |
文字列のリスト |
thumbnail |
文字列 |
username |
文字列 |
get_version
ソフトウェアのバージョン番号を返します。force=True を指定しなければ、キャッシュが使用されます。Portal オブジェクトを作成すると、バージョン情報が取得され、それ以降のリクエストのためにキャッシュされます。キャッシュを使用せずにポータルに情報を要求する場合、force 引数を True に設定します。
get_version(self, force=False)
引数
パラメータ |
説明 |
---|---|
force |
ブール値。true = 情報を要求、false = キャッシュを使用。 |
戻り値
バージョンを含む文字列。バージョンは内部番号であり、インストールされている製品のバージョンとは一致しない場合があります。
invite_group_users
ユーザをグループに招待します。グループに招待されたユーザには、ポータルの [グループ] タブ内に招待のリストが表示されます。そのユーザは、招待を承諾するか、拒否することができます。このコマンドを実行するユーザは、グループの所有者である必要があります。
invite_group_users(self, user_names, group_id, role='group_member', expiration=10080)
引数
パラメータ |
説明 |
---|---|
user_names |
必須の文字列。招待するユーザのカンマ区切りのリスト。 |
group_id |
必須の文字列。ユーザを招待するグループの ID を指定します。 |
role |
オプションの文字列。group_member または group_admin。 |
expiration |
オプションの整数。招待の有効期限(分)を指定します。 |
戻り値
操作が成功したか失敗したかを示すブール値。
is_all_ssl
ポータルが SSL を必要とする場合、true を返します。
is_all_ssl(self)
is_logged_in
ユーザがポータルにログインしている場合、true を返します。
is_logged_in(self)
is_org
ポータルが組織である場合、true を返します。
is_org(self)
leave_group
ログインしているユーザを、指定されたグループから削除します。このメソッドを使用するには、ユーザがログインしている必要があります。
leave_group(self, group_id)
引数
パラメータ |
説明 |
---|---|
group_id |
必須の文字列。グループ ID を指定します。 |
戻り値
操作が成功したか失敗したかを示すブール値。
logged_in_user
ログインしているユーザに関する情報を返します。
logged_in_user(self)
戻り値
以下のキーを含むディクショナリが返されます。
キー |
値 |
---|---|
username |
文字列 |
storageUsage |
整数 |
description |
文字列 |
tags |
カンマ区切りの文字列 |
created |
整数。アカウントが作成された時間(1970 年 1 月 1 日からのミリ秒)。 |
modified |
整数。アカウントが最後に変更された時間(1970 年 1 月 1 日からのミリ秒)。 |
fullName |
文字列 |
|
文字列 |
idpUsername |
文字列。エンタープライズ システム内のユーザの名前。 |
login
ユーザ名とパスワードを指定してポータルにログインします。Portal オブジェクトを作成するときにポータルにログインできますが、後でログインすることもできます。この関数は、後でログインする必要がある場合に使用します。
login(self, username, password, expiration=60)
引数
パラメータ |
説明 |
---|---|
username |
必須の文字列 |
password |
必須の文字列 |
expiration |
オプションの整数。生成されたトークンの有効期限。 |
戻り値
トークンを含む文字列。
logout
ポータルからログアウトします。ポータルで使用されていた既存のトークンは、すべて消去されます。それ以降、別の login 呼び出しが発生するまで、ポータルの呼び出しは匿名になります。
logout(self)
戻り値
戻り値はありません。
reassign_group
グループを別の所有者に再割り当てします。
reassign_group(self, group_id, target_owner)
引数
パラメータ |
説明 |
---|---|
group_id |
必須の文字列。グループの一意の ID。 |
target_owner |
必須の文字列。新しいグループの所有者のユーザ名。 |
戻り値
操作が成功したか失敗したかを示すブール値。
remove_group_users
ユーザをグループから削除します。
remove_group_users(self, user_names, group_id)
引数
パラメータ |
説明 |
---|---|
user_names |
必須の文字列。カンマ区切りのユーザのリスト。 |
group_id |
必須の文字列。グループの一意の ID。 |
戻り値
notRemoved というキーを含むディクショナリ。削除されなかったユーザのリストを示します。
reset_user
ユーザのパスワード、セキュリティの質問、セキュリティの答えをリセットします。この関数は、ActiveDirectory や LDAP などのエンタープライズ アイデンティティ ストアのアカウントを使用するように構成されたポータルには適用されません。この関数は、組み込みポータル ユーザにのみ適用されます。新しいセキュリティの質問を指定した場合、新しいセキュリティの答えも指定する必要があります。
reset_user(self, username, password, new_password=None, new_security_question=None, new_security_answer=None)
引数
パラメータ |
説明 |
---|---|
username |
必須の文字列。リセット対象のアカウント。 |
password |
必須の文字列。現在のパスワード。 |
new_password |
オプションの文字列。パスワードをリセットする場合の新しいパスワード。 |
new_security_question |
オプションの文字列。必要に応じて、新しいセキュリティの質問を指定します。 |
new_security_answer |
オプションの文字列。必要に応じて、新しいセキュリティの質問の答えを指定します。 |
戻り値
操作が成功したか失敗したかを示すブール値。
search
search(self, q, bbox=None, sort_field='title', sort_order='asc', max_results=1000, add_org=True)
search_groups
ポータル グループを検索します。このメソッドを使用する場合、以下を検討してください。
- クエリ構文には、ここで説明されていない多くの機能があります。すべての機能を確認するには、ArcGIS REST APIの「Search reference」をご参照ください。
- グループを検索する場合、通常は自分の組織内を検索します。便宜のため、このメソッドでは、デフォルトで自動的に組織 ID がクエリに追加されます。API によって自動的にクエリに追加されないようにする場合、add_org を false に設定します。
search_groups(self, q, sort_field='title', sort_order='asc', max_groups=1000, add_org=True)
引数
パラメータ |
説明 |
---|---|
q |
必須の文字列。クエリ文字列。 |
sort_field |
オプションの文字列。有効な値は、title、owner、または created です。 |
sort_order |
オプションの文字列。有効な値は、asc または desc です。 |
max_groups |
オプションの整数。返されるグループの最大数。 |
add_org |
オプションのブール値。自分の組織内を検索するかどうかを制御します。 |
戻り値
ディクショナリのリスト。各ディクショナリには、以下のキーが含まれています。
キー |
値 |
---|---|
access |
文字列。値は、private、org、または public です。 |
created |
整数。アカウントが作成された時間(1970 年 1 月 1 日からのミリ秒)。 |
description |
文字列 |
id |
文字列。グループの一意の ID。 |
isInvitationOnly |
ブール値 |
isViewOnly |
ブール値 |
modified |
整数。アカウントが最後に変更された時間(1970 年 1 月 1 日からのミリ秒)。 |
owner |
文字列。所有者のユーザ名。 |
phone |
文字列 |
snippet |
文字列。グループの簡単な要約。 |
sortField |
文字列。共有アイテムの並べ替え方法。 |
sortOrder |
文字列。ascending または descending。 |
tags |
文字列のリスト。検索対象のユーザ指定タグ。 |
thumbnail |
文字列。ファイルの名前。http://<community url>/groups/<group id>/info/ に追加されます。 |
title |
文字列。ユーザに表示されるグループ名。 |
search_users
ポータル ユーザを検索します。このメソッドを使用する場合、以下を検討してください。
- クエリ構文には、ここで説明されていない多くの機能があります。すべての機能を確認するには、ArcGIS REST APIの「Search reference」をご参照ください。
- ユーザを検索する場合、通常は自分の組織内を検索します。便宜のため、このメソッドでは、デフォルトで自動的に組織 ID がクエリに追加されます。API によって自動的にクエリに追加されないようにする場合、add_org を false に設定します。
search_users(self, q, sort_field='username', sort_order='asc', max_users=1000, add_org=True)
引数
パラメータ |
説明 |
---|---|
q |
必須の文字列。クエリ文字列。 |
sort_field |
オプションの文字列。有効な値は、title、owner、または created です。 |
sort_order |
オプションの文字列。有効な値は、asc または desc です。 |
max_users |
オプションの整数。返されるユーザの最大数。 |
add_org |
オプションのブール値。自分の組織内を検索するかどうかを制御します。 |
戻り値
ディクショナリのリスト。各ディクショナリには、以下のキーが含まれています。
キー |
値 |
---|---|
created |
整数。アカウントが作成された時間(1970 年 1 月 1 日からのミリ秒)。 |
culture |
文字列。2 文字の言語コード。 |
description |
文字列 |
fullName |
文字列。ユーザ名。 |
modified |
整数。アカウントが最後に変更された時間(1970 年 1 月 1 日からのミリ秒)。 |
region |
文字列。none である場合があります。 |
tags |
文字列のリスト。検索対象のユーザ指定タグ。 |
thumbnail |
文字列。ファイルの名前。http://<community url>/groups/<group id>/info/ に追加されます。 |
username |
文字列。ユーザ名。 |
signup
ユーザを Portal for ArcGIS にサイン アップします。このメソッドは、Portal for ArcGIS にのみ適用され、匿名で呼び出すことができます。ただし、ポータルでは、自己サイン アップを無効にすることもできます。また、このメソッドは、組み込みアカウントのみを作成します。エンタープライズ アイデンティティ ストアのエンタープライズ アカウントを操作することはできません。
Portal for ArcGIS 10.2.1 以降に対して必ず使用できる、createUser という名前の別のメソッドもあります。このメソッドは、管理者アクセス権限を必要とし、組み込みユーザの作成やエンタープライズ アカウントのポータルへの追加に使用することができます。
signup(self, username, password, fullname, email)
引数
パラメータ |
説明 |
---|---|
username |
必須の文字列。ポータル内で一意であり、5 文字以上である必要があります。 |
password |
必須の文字列。8 文字以上である必要があります。 |
fullname |
必須の文字列。ユーザ名。 |
|
必須の文字列。有効な電子メール アドレスを指定する必要があります。 |
戻り値
操作が成功したか失敗したかを示すブール値。
update_group
グループを更新します。更新する引数の値のみを指定する必要があります。
update_group(self, group_id, title=None, tags=None, description=None, snippet=None, access=None, is_invitation_only=None, sort_field=None, sort_order=None, is_view_only=None, thumbnail=None)
引数
パラメータ |
説明 |
---|---|
group_id |
必須の文字列。変更するグループの ID。 |
title |
必須の文字列。更新するグループの名前。 |
tags |
必須の文字列。カンマ区切りのタグのリスト。 |
description |
オプションの文字列。グループの詳細な説明。 |
snippet |
オプションの文字列。250 文字未満のグループの要約。 |
access |
オプションの文字列。private、public、または org を指定可能。 |
thumbnail |
オプションの文字列。グループの画像の URL。 |
isInvitationOnly |
オプションのブール値。ユーザが要求して加入できるかどうかを定義します。 |
sort_field |
オプションの文字列。グループで共有されたアイテムの並べ替え方法を指定します。 |
sort_order |
オプションの文字列。昇順の場合は asc、降順の場合は desc。 |
is_view_only |
オプションのブール値。グループが検索可能かどうかを定義します。 |
戻り値
操作が成功したか失敗したかを示すブール値。
update_user
ユーザのプロパティを更新します。更新する引数の値のみを指定する必要があります。
update_user(self, username, access=None, preferred_view=None, description=None, tags=None, thumbnail=None, fullname=None, email=None, culture=None, region=None)
引数
キー |
値 |
---|---|
username |
必須の文字列。更新するユーザの名前。 |
access |
オプションの文字列。値は、private、org、public です。 |
preferred_view |
オプションの文字列。値は、Web、GIS、null です。 |
description |
オプションの文字列。ユーザの説明。 |
tags |
オプションの文字列。検索対象のカンマ区切りのタグ。 |
thumbnail |
オプションの文字列。ファイルのパスまたは URL。PNG、GIF、または JPEG ファイルを指定できます。最大サイズは、1 MB です。 |
fullName |
オプションの文字列。ユーザの名前(組み込みユーザの場合のみ)。 |
|
オプションの文字列。電子メール アドレス(組み込みユーザの場合のみ)。 |
culture |
オプションの文字列。2 文字の言語コード(たとえば、「fr」)。 |
region |
オプションの文字列。2 文字の国コード(たとえば、「FR」)。 |
戻り値
操作が成功したか失敗したかを示すブール値。
update_user_role
ユーザのロールを更新します。
update_user_role(self, username, role)
引数
キー |
値 |
---|---|
username |
必須の文字列。ロールを変更するユーザの名前。 |
role |
必須の文字列。org_user、org_publisher、または org_admin を指定します。 |
戻り値
操作が成功したか失敗したかを示すブール値。