Hi Richard,
Getting dependencies on Web Maps is still not supported i think in ArcGIS Online.
Instead, i tried using the Item data of a ArcGIS online item and I was able to get the dependent layer details.
Thought might be useful to others.
from arcgis import gis
from json import loads
def get_map_item_dependencies(source_portal, item, folder, user):
if item.type == 'Web Map':
item_data = item.get_data(False)
data = dict(loads(item_data))
for layer_item in data['operationalLayers']:
layer_itemInfo = source_portal.content.get(layer_item['itemId']) if 'itemId' in layer_item else ''
print("; ".join((item.title,
user.fullName,
folder,
item.itemid,
item.type,
layer_item['title'],
layer_itemInfo.owner if layer_itemInfo and 'owner' in layer_itemInfo else '',
layer_item['layerType'],
layer_item['itemId'] if 'itemId' in layer_item else '',
layer_item['url'] if 'url' in layer_item else '')) + '\n')
def main():
source = gis.GIS("https://arcgis.maps.arcgis.com", username='', password='')
userName = ''
user = source.users.get(userName)
user_content = user.items(max_items=1000)
for item in user_content:
get_map_item_dependencies(source, item, 'Root Folder', user)
folders = user.folders
for folder in folders:
folder_items = user.items(folder=folder['title'])
for item in folder_items:
get_map_item_dependencies(source, item, folder['title'], user)