Skip to content

Commit 4f4a6e2

Browse files
authored
Merge pull request #222 from wai-chuen/master
Support guest user tokens
2 parents 00b1e80 + 1f27b30 commit 4f4a6e2

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

notion/client.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,24 @@ def __init__(
8888

8989
def start_monitoring(self):
9090
self._monitor.poll_async()
91+
92+
def _fetch_guest_space_data(self, records):
93+
"""
94+
guest users have an empty `space` dict, so get the space_id from the `space_view` dict instead,
95+
and fetch the space data from the getPublicSpaceData endpoint.
96+
97+
Note: This mutates the records dict
98+
"""
99+
space_id = list(records["space_view"].values())[0]["value"]["space_id"]
100+
101+
space_data = self.post(
102+
"getPublicSpaceData", {"type": "space-ids", "spaceIds": [space_id]}
103+
).json()
104+
105+
records["space"] = {
106+
space["id"]: {"value": space} for space in space_data["results"]
107+
}
108+
91109

92110
def _set_token(self, email=None, password=None):
93111
if not email:
@@ -98,6 +116,9 @@ def _set_token(self, email=None, password=None):
98116

99117
def _update_user_info(self):
100118
records = self.post("loadUserContent", {}).json()["recordMap"]
119+
if not records["space"]:
120+
self._fetch_guest_space_data(records)
121+
101122
self._store.store_recordmap(records)
102123
self.current_user = self.get_user(list(records["notion_user"].keys())[0])
103124
self.current_space = self.get_space(list(records["space"].keys())[0])

0 commit comments

Comments
 (0)