
目次
Notionと外部のツールをつないだのに、一部だけがうまくいかない。そういうことがあります。
読み込みはできているのに、コメントだけ取れない。ある画面では動くのに、別の画面では「見つかりません」と出る。
これは止まり方で原因が分かれます。16の操作を実際に投げて、どこで何番が返るかを測りました。
16の操作を試して、止まったのは2つだけ
まず、どこまでできるのかを確かめました。
通ったもの、止まったもの
| やろうとしたこと | 結果 |
|---|---|
| ページを読む | 通る |
| ページを書き換える | 通る |
| ページの中身を読む | 通る |
| ページに中身を足す | 通る |
| 中身を書き換える | 通る |
| 中身を消す | 通る |
| データベースを読む | 通る |
| データベースの中身を絞り込む | 通る |
| データベースに列を足す | 通る |
| 行を作る | 通る |
| ワークスペース全体を検索する | 通る |
| つないだ側の情報を読む | 通る |
| 人の一覧を読む | 通る |
| ファイルの受け入れ先を作る | 通る |
| コメントを読む | 止まる |
| コメントを書く | 止まる |
消すことまでできるのに、コメントは読むことすらできませんでした。
返ってきたのは、どちらも同じ一文です。「このエンドポイントに対する権限が足りません」という内容でした。読むときも書くときも、まったく同じ文言です。
文言が同じなので、読む権限と書く権限のどちらが足りないのかは、メッセージからは分かりません。設定を開いて確かめることになります。
「読めるのに読めない」が起きています
ここが分かりにくいところです。ページの中身は全部読めています。行も作れます。消すこともできます。
それでもコメントだけは読めません。権限の付け方が、ほかと違うからです。
自分の環境でも、同じ表を作れます
この表は、自分のつなぎ方でも作れます。やることは、使いたい操作を1回ずつ投げて、返ってきた番号を書き留めるだけです。
| 順番 | やること |
|---|---|
| 1 | 試すための場所を1つ作る(あとで消せるページ) |
| 2 | 使う予定の操作を、1つずつ投げる |
| 3 | 番号と、返ってきた文章をそのまま残す |
| 4 | 止まったものだけ、設定を見に行く |
本番の処理を組んでから躓くより、先に「どこまでできるか」を確かめておくほうが早いです。15分ほどで終わります。
とくに、本番でしか通らない処理を含む場合は先にやってください。月に1回しか動かない処理が403で止まると、気づくのが1ヶ月後になります。
コメントは、別の権限になっています
なぜ2つだけ止まるのか。理由がありました。
権限は3つのグループに分かれています
公式の説明によると、つなぐときに渡す権限は3つのグループに分かれています。
| グループ | 中身 |
|---|---|
| 中身についての権限 | 読む・更新する・足す |
| コメントについての権限 | 読む/書く(それぞれ別) |
| 人についての権限 | 人の情報を読む |
つまり、「中身を読む権限」を渡しても、コメントは読めません。別のグループなので、別に渡す必要があります。
コメントは、読むと書くでさらに分かれます
しかも、コメントのグループの中でもう一段分かれています。読む権限と、書く権限が別です。
コメントを読んで集計したいだけなら、書く権限は渡さなくて済みます。逆に、外から通知を書き込むだけなら読む権限は不要です。
渡すのは、使うぶんだけ。これができる作りになっています。
人についての権限では、メールアドレスまで見えます
3つ目のグループも確かめました。人の一覧を読むと、載っている人と、つないだツールで、返ってくる内容が違いました。
| 相手 | 返ってくるもの |
|---|---|
| 人 | 名前、アイコン、メールアドレス |
| つないだツール | 名前、アイコン(メールアドレスは無し) |
人にはメールアドレスが付いてきます。この権限を渡すと、ワークスペースにいる人のメールアドレスが外から読める状態になります。
名前だけ欲しい場合でも、メールアドレスは一緒に返ってきます。分けて渡すことはできません。人の情報を使わないなら、この権限は渡さないほうがいいです。
ツールの不具合と思う前に、ここを見てください
外部のツールが「コメントを取得できません」と言うとき、ツールの側に問題があるとは限りません。権限を渡していないだけ、という可能性があります。
この場合、何度やり直しても同じです。つないだ設定を開いて、コメントの権限が付いているかを見てください。
番号で原因が3つに分かれます
ここが、この記事でいちばんお伝えしたいところです。
403・404・400で、直す場所が変わります
止まったときに返ってくる番号は、原因を指しています。
| 番号 | 何が起きているか | どこを直すか |
|---|---|---|
| 403 | その操作をする権限がない | つないだ設定の画面 |
| 404 | そのページを共有していない | Notionのページ側 |
| 400 | 送っている内容がおかしい | こちらのコード |
403は設定、404は共有、400はコード。この3つで覚えておけば、迷いません。
403と404は、混同しやすいです
どちらも「できない」なので、同じように見えます。ただ、直す場所がまったく違います。
403は、操作そのものが許されていない状態です。どのページに対してやっても止まります。設定を変えないと、一生通りません。
404は、その操作はできるのに、相手のページが見えていない状態です。別のページなら通ります。
見分け方は、別のページで試すことです
手元で切り分けるなら、これがいちばん早いです。
| 別のページで試すと | 原因 |
|---|---|
| そちらも同じように止まる | 権限(403の側) |
| そちらは通る | 共有(404の側) |
番号が見えない画面でも、この方法なら切り分けられます。
404の本文には、直し方が書いてあります
404のときに返ってくる文章が、親切でした。
どのツールに共有すればいいかまで入っています
実際に返ってきたのは、こういう内容です。
- このIDのページが見つかりません
- 関係するページとデータベースを、つないでいる「(ツールの名前)」に共有してください
名前が入っているのが助かります。複数のツールをつないでいるとき、どれに共有すればいいかが一目で分かります。
ページの中身を読もうとしたときも、同じ形の文章が返ってきました。
「存在しない」と「共有していない」は、同じ扱いです
1つ注意があります。本当に存在しないIDを送ったときも、同じ404が返ります。
今回は、全部ゼロのIDを送って試しました。それでも「共有してください」という文章が返ってきます。区別されていません。
つまり、404が出たときに考えることは2つあります。
| 考えること | 確かめ方 |
|---|---|
| 共有していないのか | ページ側の接続を見る |
| IDを間違えているのか | そのIDを画面で開いてみる |
先に共有を疑って直らないときは、IDを疑ってください。消したページのIDを持ち続けているというのが、よくある形です。
400は、こちら側の間違いです
3つ目の番号です。こちらは分かりやすいです。
形が違うときに出ます
IDの形式になっていない文字列を送ったところ、「IDとして正しい形ではありません」という内容が返ってきました。
何がどう違うのかまで書いてあります。送った文字列もそのまま返ってくるので、どこで値が入れ替わったかを追いやすいです。
置き場所を指定しないと、作れません
もう1つ、400で止まったことがあります。置き場所を指定せずにページを作ろうとしたときです。
いちばん上の階層に直接ページを作る、という指定をしました。断られました。親になるページかデータベースを、必ず指定する必要があります。
これは仕様として知っておくと役に立ちます。外からページを作るなら、どこに置くかを先に決めておく必要があるということです。置き場所を作る処理から順に組んでください。
本文に、必要な権限の名前が出てくることもあります
このときのメッセージが、少し変わっていました。「親を指定してください」に続けて、足りない権限の名前が書かれていました。
つまり、エラー本文からどの権限を足せばいいかが分かる場合があります。設定画面の項目名と照らし合わせられます。
ただし、これは全部のエラーで出るわけではありません。コメントの403では、権限の名前は出ませんでした。出たら手がかりにする、という程度に考えてください。
3つの番号の使い分け
最後に整理しておきます。
| 番号 | 誰の問題か |
|---|---|
| 403 | 設定した人(権限を渡していない) |
| 404 | Notionを使う人(共有していない)または ID の間違い |
| 400 | 作った人(送る内容が違う) |
誰に聞けばいいかが変わります。400だけは、自分で直せます。
図にすると、こういう分かれ方です
止まったときに見る順番
実務で使える形にまとめます。
上から順に見てください
| 順番 | 見ること |
|---|---|
| 1 | 番号を確かめる。403か404か400か |
| 2 | 403なら、つないだ設定で権限を見る |
| 3 | 404なら、ページ側の接続を見る |
| 4 | それでも404なら、IDを画面で開いてみる |
| 5 | 400なら、送っている内容を見る |
番号が見えないツールを使っている場合は、別のページで同じ操作を試す。これで403と404は切り分けられます。
よくある症状と、まず疑うもの
| 症状 | まず疑うもの |
|---|---|
| データは取れるのに、コメントだけ取れない | コメントの権限 |
| あるページでは動くのに、別のページで「見つかりません」 | そのページの共有 |
| 昨日まで動いていたのに、急に「見つかりません」 | ページが消されたか、接続が外された |
| 何もかも止まっている | つなぐための設定そのもの |
3つ目に注意してください。Notion側の操作で止まることがあります。コード側は何も変えていないのに動かなくなった、というときは、まずNotionの画面を見てください。
この場合、原因はコードの中にはありません。探す場所を間違えると、いくら読んでも見つかりません。
つないだ範囲は、思っているより広いです
ついでに測ったことをもう1つ。今回のつなぎ方で、何件まで辿れるのかを数えました。
検索を最後まで送って数えたところ、1,607件のページとデータベースが見えていました。
いちばん上の階層にあるページも含まれます。つまり、1つのページを共有したつもりでも、その下にあるものは全部見えています。
つないだ相手に何が見えているかは、別の記事で詳しく書きました。共有する範囲は、必要なところだけに絞ってください。
権限を渡すときの考え方
使うぶんだけ渡す、が基本です。
| やりたいこと | 渡す権限 |
|---|---|
| データを読んで集計する | 読むだけ |
| 外からデータを入れる | 読む + 足す |
| コメントを集める | 読む + コメントを読む |
| 外から通知を書き込む | コメントを書く |
あとから足せるので、最初は最小で始めて、足りなくなったら足すのがいいと思います。403が出たら足す、という進め方で困りません。
よくある質問(FAQ)
コメントの権限は、あとから足せますか。
設定の画面で切り替えるものなので、あとから足せます。足したあとに同じ操作を投げて、403が消えるかを確かめてください。
403が出ているのに、設定では権限が付いているように見えます。
コメントの権限は「読む」と「書く」で別々に分かれています。読む操作で止まっているなら、付いているのは「書く」のほうかもしれません。どちらが付いているかを見てください。
共有を外したページは、本当に404になりますか。
そこは確かめていません。APIから共有を外せないので、今回は検証できませんでした。返ってくる本文に「共有してください」と書かれていることからの判断です。
404なのに、共有はできているはずです。
IDを疑ってください。「存在しない」と「共有していない」は同じ404になります。よくあるのは、消したページのIDを持ち続けている場合です。そのIDを画面で開いてみるのが早いです。
いちばん上の階層にページを作れないのは、なぜですか。
理由までは分かりません。ただ、必ず親を指定する必要があるのは確かなので、外からページを作るなら置き場所を先に用意する形で組んでください。
権限を広く渡しておくのは、まずいですか。
渡した相手には、共有した範囲の下が全部見えます。今回は1,607件が辿れました。使わない権限は渡さず、共有する範囲も絞るほうが安全です。
403は設定、404は共有、400はコード
止まったときは、まず番号を見てください。直す場所が決まります。番号が見えないときは、別のページで同じ操作を試せば、権限か共有かが分かります。