日本語URLがiPhoneのFacebookアプリで404になる、そんな時は

2014.09.19.チカさん

こんにちは、東京拠点のチカです。
風邪を引いておりますがめっちゃ元気です。

さて今日は、タイトルにもある日本語URLのお話です。
現時点の最新版Facebookアプリでは、URLに日本語が含まれるサイトをシェアすると、iPhoneのFacebookアプリからアクセスできない(Not Foundになる)現象が発生しています。

遡って調べてみると、アップデートのたびに頻発している模様。
Facebookで拡散されたいサイトはそもそも日本語URLを使用しないのがベストなようです。

とはいえ、「仕様やコンセプト上、どうしても日本語がいいんや!」というサイトをお持ちの方、一緒に戦いましょう!

ケース1:URLコピペでシェアする場合

ブラウザのアドレスバーからURLをコピー、Facebookにペーストして投稿する場合。
多くのブラウザでは、クリップボードに渡されるURLはエンコードされているらしく、以下のような結果になります。
そのままコピペ
このままシェアしてもPCでは問題なく閲覧できますが、FacebookアプリからだとNot Foundになります。
ということは、URLデコード機能に問題があるに違いない!

試しに、アドレスバーからコピーしたURLにデコードをかけてからペーストしてみました。
デコードしてからコピペ
正解でした、これでPCからもiPhoneからも目的のページが閲覧できます◎

◆デコード方法について
「URL デコード」などで検索すると、web上でデコードできるサービスがいくつかヒットします。
また、ブラウザの拡張機能なども存在しているようです。お好みのものをお探しください。



ケース2:「いいね!」ボタンでシェアする場合

ページに埋め込んだ「いいね!」ボタンでシェアされた場合も、日本語URLだとNot Foundになる!
これはもったいない、困った問題でした。

でも大丈夫b(^3^)d
ケース1でデコード機能に問題があることは分かりました。
それならば、「いいね!」ボタンにもデコードされたURLを渡してあげようじゃないか。
ということで試してみました。

og:urlに渡すパーマリンクを、PHPの関数「rawurldecode」で事前にデコード。
Wordpressだとこんな感じですね。
$og_url = get_permalink();
$og_url = rawurldecode($og_url);

この$og_urlをog:urlに渡してあげることで、「いいね!」ボタンでシェアされるURLがデコードされた状態になり、無事にFacebookアプリからも閲覧できるようになりました。
一安心〜。


そんなわけで、URLに日本語を含むサイトを運営されている皆様、アプリのデコード不良にご注意!というお話でした。
Androidでは未検証+iPhoneアプリも次のアップデートでどう転ぶか不明なので、ケース2をお試しになる方はくれぐれも慎重になさってください。

ちなみに弊社ブログは日本語URLから撤退中です。