こんにちは、東京拠点のチカです。
風邪を引いておりますがめっちゃ元気です。
さて今日は、タイトルにもある日本語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から撤退中です。