What is the purpose of group.notify

112
0
08-11-2020 03:39 PM
JohnMDye
Regular Contributor

I stumbed across the group.notify method in the ArcGIS API for Python documentation and thought it would be useful for sending custom notifications to users when content is marked as deprecated or a group owner leaves the company and we need to notify the remaining group admins so that we can identify a new group owner. I gave it a go to test it out and got a 403 response back.

# Sign in to Portal
gis = GIS('https://myportal.domain.com/arcgis', getpass.getuser(), getpass.getpass("Password: "))
gis.users.me
my = gis.users.me
for group in my.groups:
if group.title == 'testing':
keys = ['admins', 'users']
members = []
for key in keys:
for user in group.get_members()[key]:
members.append(user)
print(group.notify(members, "Test Notification", "This is a test notification", "builtin"))‍‍‍‍‍‍‍‍‍‍‍‍

Specifically, here's the response I'm getting:

You do not have permissions to access this resource or perform this operation.
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-41-271dd187a943> in <module>
8 members.append(user)
9 print(members)
---> 10 print(group.notify(members, "Test Notification", "This is a test notification", "builtin"))

C:\Miniconda\envs\gis\lib\site-packages\arcgis\gis\__init__.py in notify(self, users, subject, message, method, client_id)
5566 "f": "json"
5567 }
-> 5568 return self._gis._con.post(url, params)
5569
5570 def get_members(self):

C:\Miniconda\envs\gis\lib\site-packages\arcgis\_impl\connection.py in post(self, path, postdata, files, ssl, compress, is_retry, use_ordered_dict, add_token, verify_cert, token, try_json, out_folder, file_name, force_bytes, add_headers)
1181 verify_cert=verify_cert, is_retry=True)
1182
-> 1183 self._handle_json_error(resp_json['error'], errorcode)
1184 return None
1185

C:\Miniconda\envs\gis\lib\site-packages\arcgis\_impl\connection.py in _handle_json_error(self, error, errorcode)
1202
1203 errormessage = errormessage + "\n(Error Code: " + str(errorcode) +")"
-> 1204 raise RuntimeError(errormessage)
1205
1206 class _StrictURLopener(request.FancyURLopener):

RuntimeError: You do not have permissions to access this resource or perform this operation.
(Error Code: 403)‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

I'm an Administrator of the Organization and Owner of this group. It seems this might be a private method available onl to Esri. If so, not cool. Share the wealth. What is the point of group.notify method if no one can use it?

0 Kudos
0 Replies