
Reference URL : Retrieve a database, Retrieve a user
database의 정보를 알아내기 위해 retrieve를 진행해보겠습니다.
database_id를 알려면 search를 사용해야 합니다.
databases = notion.search(filter={"property": "object", "value": "database"})
pprint(databases)
API Bot 조회 권한이 있는 database 정보들이 노출될 겁니다. 여기서 필요한 database의 id를 가져옵니다.
{'has_more': False,
'next_cursor': None,
'object': 'list',
'page_or_database': {},
'results': [{'archived': False,
... ,
'icon': {'emoji': '🍕', 'type': 'emoji'},
'id': '021eb424-7a41-47ae-9252-f67d4f6e6b05', # database_id
마찬가지로 'results'는 list이기 때문에 첫번째 'id'를 가져오려면 [0], 두번째는 [1]로 가져오시면 됩니다. 우선 예시는 첫번째 database의 id를 가져오는 걸로 하겠습니다.
database_id = databases['results'][0]['id']
이제 위 database_id 로 retrieve 하여 정보를 가져오도록 합니다.
database_details = notion.databases.retrieve(database_id=database_id)
pprint(database_details)
그리고 retrieve한 database 정보를 보시다보면, 하기와 같이 'id'는 있는데 UUID(범용 고유 식별자) 형태의 id가 있습니다. UUID 형태로는 이게 누구인지 알 수 없기 때문에 해당 user의 id를 기입하면 조회가 가능한 기능이 있습니다.
'created_by': {'id': 'edfacc72-eb15-467b-9fdb-d5b656e1c77b', 'object': 'user'},
우선 database_detail에서 'created_by'의 user_id를 가져와보겠습니다.
created_user = database_details['created_by']['id']
이제 이 id로 retrieve를 호출해보겠습니다.
created_user_info = notion.users.retrieve(user_id=created_user)
pprint(created_user_info)
찍어보니 사용자 이름과 이메일 정보가 나왔네요.
{'avatar_url': None,
'id': 'edfacc72-eb15-467b-9fdb-d5b656e1c77b',
'name': 'Chan Chan',
'object': 'user',
'person': {'email': 'chanbaek@kakao.com'},
'type': 'person'}