SharePoint Online のモダンサイトのニュースを便利に利用しています。ニュースの機能として、外部サイトの URL を「ニュース リンク」として追加できるのも便利ですね。

さて、この「ニュース リンク」ですが、使っているうちに「問題が発生しました」というエラーが表示されるという問題がありました。

原因はなんだろうなと調査したので、結果を書いておきます!

ニュース リンクとは

「ニュース リンク」とは、SharePoint Online のモダンサイトで利用できるニュース機能に含まれるものです。ニュースに記事を投稿しようとすると、「ニュースの投稿」「ニュース リンク」の 2 種類から選択することができます。

「ニュース リンク」を利用すると、外部サイトなどの URL を指定することで自動的に情報が取得され、あたかもニュース記事のひとつのように投稿できます。

企業でも社外向けサイトにプレスリリースなどを掲載することもあると思いますが、社内向けにわざわざ転記するのではなく、ニュース リンクで投稿し社内と共有することができますね。

ニュース リンクのエラー

ある日、ニュース リンクで投稿しようとするとエラーが出て投稿できないという問題が起こりました。

リンク先の情報はきちんと取得できており問題はないように思えますが、[投稿] ボタンを押すとエラーが表示されて投稿できません。

原因は URL の長さ

あれこれ試しながら原因を探していると、どうやら URL の長さに問題があることがわかりました。ニュース リンクの「リンク」に指定できる URL の長さは、255 文字以下である必要があるようです。

みなさんはギネスブックにも記載されている世界一長い地名をご存知でしょうか?Wikipedia で調べてみました。

タウマタファカタンギハンガコアウアウオタマテアポカイフェヌアキタナタフ
https://ja.wikipedia.org/wiki/タウマタファカタンギハンガコアウアウオタマテアポカイフェヌアキタナタフ

ニュージーランドにある地名で「タマテアという、大きな膝を持ち、山々を登り、陸地を飲み込むように旅歩く男が、愛する者のために鼻笛を吹いた頂」という意味のようです。

このリンクを開いて、ブラウザから URL をコピーしテキストエディターなどに貼ってみてください。

https://ja.wikipedia.org/wiki/%E3%82%BF%E3%82%A6%E3%83%9E%E3%82%BF%E3%83%95%E3%82%A1%E3%82%AB%E3%82%BF%E3%83%B3%E3%82%AE%E3%83%8F%E3%83%B3%E3%82%AC%E3%82%B3%E3%82%A2%E3%82%A6%E3%82%A2%E3%82%A6%E3%82%AA%E3%82%BF%E3%83%9E%E3%83%86%E3%82%A2%E3%83%9D%E3%82%AB%E3%82%A4%E3%83%95%E3%82%A7%E3%83%8C%E3%82%A2%E3%82%AD%E3%82%BF%E3%83%8A%E3%82%BF%E3%83%95

こんな感じで、カタカナのところが暗号のように変換されます。これは、パーセントエンコーディングという方法で全角文字が半角英数字に変換されているためです。

これをそのまま「ニュース リンク」に投稿しようとすると、345 文字もあるのでエラーが出てしまうというわけです。これは困りました。

日本語に戻して投稿しよう

解決策は簡単です。パーセントエンコーディングされた URL を元の日本語に戻して投稿しましょう。

たとえば Google で「URL デコード」として検索したサイトを利用してみましょう。

URLエンコード・デコード|日本語URLをサクッと変換 | すぐに使える便利なWEBツール | Tech-Unlimited
https://tech-unlimited.com/urlencode.html

「デコードする」を選び、さきほどの長い URL の文字列を入力し、[変換する] をクリックすると、日本語化された URL を取得できます。

この URL をニュース リンクの「リンク」として投稿しましょう。

今度は無事に投稿できました!

気づいてしまえば大したことはないのですが、画面上の表示からは原因にたどり着けずに苦労しました…。

エラー発生時に気をつけること

エラーが発生すると、「サイトのページ」ライブラリに壊れたページが出来てしまっています。このまま残しておいても問題はないのですが、このページ自体は不要なので、気になるようであれば消しておくのが良いと思います。ページ名の右側に赤いマークがついており、チェックアウトされた状態で作成されていますので、簡単に見つけられると思います。

なんでエラーになるんだろう…、と思いつつ投稿ボタンを連打したので、連打した回数分だけ壊れたページが出来ています。

本当であれば、URL を入力した時点でエラーを表示して教えてくれれば良いのになと思います。

さいごに

というわけで、分かってしまえば大したことは無いのですが、僕自身が原因を突き詰めるのに数時間もかけてしまったので、せっかくならと共有しておきます。

そしてこの問題は、おそらく半角文字の英語圏では滅多に発生しない問題なので、全角文字を良く利用する日本ならではのナレッジかなと思いました。

繰り返しますが、本当であれば、URL を入力した時点でエラーを表示して教えてくれれば良いのになと思います。