Allied ArchitectsAllied ArchitectsEngineer Blog

Facebookのグローバルぺージでのいいね!判定

2013/02/18 Facebook

お久しぶりです。塚原です。
インフルエンザ、ノロウイルス。。。ソーシャル疲れなど
流行っておりますが、負けじとモリモリ開発がんばっております。

今回はひとつ、
台湾版のモニプラ「MONIPLA 摩樂派」
http://fa.tw.monipla.com/
をリリースして早3ヶ月、
印象的な対応があったのでご紹介します。

ある日、お問い合わせで
「いいね!したんですけど参加できませんっ!」
というものが複数寄せられたことがありました。

参加するには、キャンペーン詳細画面からページにいいね!してもらい、
参加ボタンを押した後に判定をして
いいね!されていたら参加画面を表示
いいね!されていなかったらキャンペーンの詳細画面に戻す
という処理が入っています。

この判定がうまくいかないことが過去にもあったので、
またFacebookのAPIがご機嫌斜めなのかなぁと思い検証してみました。

社内で数人に試してもらった結果、いいね!はみんなされているのに
参加できる人とできない人が見受けられました。

さらに該当キャンペーンの企業様のページをみると
言語ごとに違うアカウントのページがある。。。でもいいね!は共通。。。
噂のグローバルぺージに対応してたのです。

グローバルページは、(1)のように親とするページがひとつあり、
そこに他の言語のページ(2)(3)がぶら下がる形になっています。

(1)英語 [親]
(2)台湾語 [子]
(3)日本語 [子]

(1)(2)(3)のどこからいいね!してもカウントされ、
ページ上ではいいね!されたことになっています。
例えば(3)でいいね!して、(1)へアクセスしたとしても
(1)でもいいね!されている状態になるわけです。

調査した結果、以下のようなことが起きていました。
(3)でいいね!して、(1)へアクセスしても
(1)でいいね!しているとみなされない、
(1)でのいいね!は(1)でページでしか有効としないという判定をしていたため
うまくいっていませんでした。

実際、キャンペーンを開催していたのは台湾語のページ上で、
新規のユーザ様がそのまま台湾ページでいいね!して参加した場合はうまくいき、
以前、英語ページや日本語ページでいいね!していて参加しようとしていたユーザ様が
失敗しているといった状況でした。

これをどのように改善したかというと、

1.判定をしたいFacebookページの親ページIDを取得
こういうときはこれを使うと便利です。
Graph API エクスプローラ http://developers.facebook.com/tools/explorer/

Graph API モードで [該当ぺージID]?fields=global_brand_parent_page を実行すると

という結果が返ってきて、親ぺージIDがわかります。

2.親ページIDから、ぶら下がる子ページのIDを取得し、子ページのIDリストを保持。
Graph API エクスプローラをFQL Queryモードにして、以下のFQLを実行します。

結果として子ぺージの一覧を取得できます。

3.既存ロジックの改修
Graph API  /me/likes https://developers.facebook.com/docs/reference/api/user/#likes
で取得した自分がいいね!しているページのIDリストに保持した子ページのIDがあれば、
いいね!しているとみなす形へ変更。

とりあえずアナログでDBに保持させて対応しましたが、
数が増えてきたらAPIから取得するように開発を入れる予定です。
(できればAPI側でいい感じのグローバルページ対応があればうれしい。。。)

まだグローバルページは一般開放はされておらず
大手企業でしか使えていないみたいですが。。。
グローバル化、さらにはそういう企業様と
お仕事できるまでになったのだなぁと感じた対応でした。

それではまた~!

塚原 大祐
  • 塚原 大祐
  • Webサービスを作る人(職人)
  • 名の由来は「天祐」。 そのままではおこがましいので 天の字から1本棒をとればと叔父がつけてくれたもの。 名に恥じぬよう世の中の助けとなるものを創り出していきたいです。 for Facebookのサポート・運用開発の部隊に所属しています。

RELATION ENTRY

phpにおけるswitch文の闇

phpにおけるswitch文の闇

2017/11/7 PHP

おひさしぶりです。塚原です。 朝夕は肌寒くなってきましたね。気づけばもう11月突入ということで 「今年もあと2ヶ月か~1年早いな」 と思いつつお問い合わせ対応など運用業務に勤しむ毎日です。 今回は、知ってはいたけど実際に遭遇すると嵌まる事例を紹介したいと思います。 少し前の問い合わせの話ですが、...

続きを読む

SQLで複数行をまとめて取りたいとき( GROUP_CONCAT )

SQLで複数行をまとめて取りたいとき( ...

2014/06/17 MySQL

ワールドカップはじまりましたね! 普段はサッカーを観戦したりはしないのですが、お祭り的な雰囲気が好きで見てしまいます。 おひさしぶりです。塚原です。 健忘禄も兼ねて mysqlの GROUP_CONCAT を紹介します。 同一のカテゴリーのデータが複数行にあるものを1カテゴリー1行で出し...

続きを読む

塚原 大祐の記事一覧へ

ページTOPへ