iOSアプリからFacebook公式アプリ内のFacebookページに飛ばす方法

先日のiPhone Dev Sap勉強会で発表した内容です。


自分のアプリのFacebookページを知ってもらい、「いいね!」してもらうために、
アプリ内にFacebookページに飛ぶボタンを配置することはけっこうあると思います。
通常は、アプリ内にFacebookページへのリンク(例: http://www.facebook.com/rakkoentertainment)を貼ると思いますが、
普通にリンクを貼ると以下の問題があります。

iOS 5以前

SafariFacebookページが開く
Facebook公式アプリを利用しているユーザーの多くはSafariではFacebookにログインしていないため、「いいね!」をしてもらうことはかなり難しい。

iOS 6(Facebookアプリがインストールされていない)

SafariFacebookページが開く
→特に問題ない挙動

iOS 6(Facebookアプリがインストール済み)

Facebookアプリが起動
→しかし該当ページは開かない。ただ起動するだけ。


特に、 iOS 6(Facebookアプリがインストール済み)の場合は、まったく意味がないリンクになってしまうため深刻です。
というわけで、まずはFacebook公式アプリでFacebookページを開くURLを作りましょう。
↓ずばりこのURLです!!!

fb://profile/【facebookID】


…facebookID?なにそれ?ってなると思います。


そこで、facebookIDを取り出す魔法のURLです。

graph.facebook.com/【ページURL末尾】

例: graph.facebook.com/rakkoentertainment


このurlを開くと、こんな感じにFacebookページに関する様々な情報が表示されます。



はい、idが出ましたね。
この数字の羅列を先ほどの「fb://profile/」の後ろにつけてあげると、Facebookアプリ内のFacebookページに飛ぶリンクの完成です。


アプリ内では以下のように使うといいと思います。

NSURL *fbPageURL = [NSURLURLWithString:@"fb://profile/163021693719178"];

if (![[UIApplicationsharedApplication] openURL: fbPageURL]) {
    //fbPageURLが開けない場合、代わりにSafariで開く
    NSURL *webURL = [NSURLURLWithString:@"http://www.facebook.com/rakkoentertainment"];
    [[UIApplicationsharedApplication] openURL: webURL];
}


普通にurlスキームなので、webサイトからも飛べますね。ご活用ください!