生活随笔
收集整理的這篇文章主要介紹了
arcgis-online-python-scripts
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原文:https://github.com/aitorcalero/arcgis-online-python-scripts/blob/master/AGOLOrg_03.py
使用python腳本來操作portal,其實在使用javaScript的時候,也可以用類似的方式,以供參考:
| import Tkinter, Tkconstants, tkFileDialog |
|
| # Script that generates a set of groups in ArcGIS Online from a list in a txt file |
|
| def openGroupFileDialog(): |
|
| return tkFileDialog.askopenfilename(filetypes = (("Txt File","*.txt"),("All Files","*.*"))) |
|
| def generateToken(portal,username,password): |
|
| parameters = urllib.urlencode({'username': username, 'password': password, 'client':'requestip','f':'json'}) |
|
| request = portal + '/sharing/rest/generateToken?' |
|
| response = json.loads(urllib.urlopen(request, parameters).read()) |
|
| if not 'token' in response: |
|
| print "Bad user or password" |
|
| token = response['token'] |
|
| tokenExpires = response['expires'] |
|
| tokenExpiresReadable = time.strftime('%Y-%m-%d %I:%M:%S %p (%Z)', time.localtime(tokenExpires/1000)) |
|
| print "Token generated. Expires " +tokenExpiresReadable |
|
| def createGroup(portal, groupTitle, groupDescription, token): |
|
| params = urllib.urlencode({'title': groupTitle, |
|
| 'description': groupDescription, |
|
| 'tags':'destacado,contenido,demo,esri,spain', #TODO list of properties per group |
|
| 'access':'org', 'token': token, 'f':'json'}) |
|
| request = portal + '/sharing/rest/community/createGroup?' |
|
| response = json.loads(urllib.urlopen(request, params).read()) |
|
| data = urllib.urlopen(request, params).read() |
|
| print "Group " + groupTitle +" created" |
|
| # add Items to the organizations |
|
| def addItemsToGroup(portal, groupID, items, token): |
|
| params = urllib.urlencode({'groups': groupID, 'token': token, 'f':'json'}) |
|
| request = portal + '/sharing/rest/content/items/' + item + '/share' |
|
| response = json.loads(urllib.urlopen(request, params).read()) |
|
| print "Added Item #" + item |
|
| def getOrganizationId(portal, token): |
|
| params = urllib.urlencode({'token': token, 'f':'json'}) |
|
| request = portal + '/sharing/rest/portals/self?' |
|
| response = json.loads(urllib.urlopen(request, params).read()) |
|
| # Change organization properties |
|
| def setOrganizationProperties(portal, organizationId, properties,token): |
|
| properties['token'] = token |
|
| params = urllib.urlencode(properties) |
|
| request = portal + '/sharing/rest/portals/' + organizationId + '/update?' |
|
| response = json.loads(urllib.urlopen(request, params).read()) |
|
| def readGroupsFromTxt(path): |
|
| grupo = [line.strip() for line in open(path)] |
|
| portal = 'https://www.arcgis.com' |
|
| # Ask named user credentials |
|
| customer = raw_input("Customer Name [{0}]: ".format(customer)) or customer |
|
| username = raw_input("Username [{0}]: ".format(username)) or username |
|
| password = getpass.getpass() or raw_input("Password [{0}]: ".format("fomentofomento")) |
|
| token = generateToken(portal,username,password) |
|
| grupos = readGroupsFromTxt(openGroupFileDialog()) |
|
| groupID = createGroup(portal, grupo, |
|
| 'Grupo de ' + grupo + ' del ' + customer, token) |
|
main()
總結
以上是生活随笔為你收集整理的arcgis-online-python-scripts的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。