def create_address_book(name): session = requests.session() session.auth = (username, password) token = get_request_token(session) r = request( 'POST', base + '/index.php/apps/contacts/addressbook/local/add', data=dict(displayname=name, uri=name, description=''), headers=dict(requesttoken=token), session=session ).json() return r['uri']
def get_request_token(session): r = request('GET', base + '/', session=session) tree = lxml.html.fromstring(r.content) return tree.find('head').attrib['data-requesttoken']