Facebookのイイねされた数をURLを指定して取得する

何か作るのは面倒くさいので、手元の環境で適当に取得できるようにしてみる。
※ Facebookのことなので、これがいつまで使えるかは謎

FacebookのGraph APIを使ってイイね数を取得する

どうやら、idにURLを指定してやればイイねに関する情報がJSON取得できる様子。かんたん

$ curl -s “http://graph.facebook.com/?id=http://www.atyks.org/

{
"og_object": {
"id": "10150302610415731",
"description": "ChangeLogに書き留めた覚書など",
"title": "そうだ車輪と名づけよう 5th",
"type": "article",
"updated_time": "2016-01-18T07:42:05+0000"
},
"share": {
"comment_count": 0,
"share_count": 1
},
"id": "http://www.atyks.org/"
}

この内、share_countがイイね数らしい。ので、この時点で目標は達成。後は必要なだけリクエストすればOK

jqを使って変換する

上では結果のJSONを見るのにjq コマンドを使って整形している。

実際に叩いたURLは以下
$ curl -s “http://graph.facebook.com/?id=http://www.atyks.org/” | jq

これだと不要な情報も取得できてしまうので、必要最低限のみを切り出してみる

$ curl -s “http://graph.facebook.com/?id=http://www.atyks.org/” | jq ‘{“id”: .id, “count”: .share.share_count}’

{
"id": "http://www.atyks.org/",
"count": 1
}

数字だけ欲しいならこんな感じ
$ curl -s “http://graph.facebook.com/?id=http://www.atyks.org/” | jq ‘.share.share_count’

1

FacebookページにGraph APIを使って投稿する

FacebookのAPIを通して、Facebookページに投稿するプログラム

基本的には、Facebook PHP SDKを使う。使い方はそちらのサンプルをベースに。

Facebookにログインする際に、”manage_pages“を付けておく。
これで投稿者が管理するFacebookページを操作できるようになる

$params = array(
'scope' => 'read_stream, publish_stream, status_update, manage_pages',
'redirect_uri' => 'http://' . $_SERVER["SERVER_NAME"] . $_SERVER["PHP_SELF"]
);
$loginUrl = $facebook->getLoginUrl($params);

投稿する際のプログラムは以下の様な感じ。投稿のところは自分のウォールに投稿するのと同様に可能

// ユーザIDを取得する。今回は自分
$user_profile = $facebook->api('/me');
$uid = $user_profile["id"];
// ユーザが管理するFBページの一覧を取得する
//  $pagesの中にはユーザが管理権限を持つFacebookページの情報が入る
$pages = $facebook->api("/$uid/accounts");
// 管理するFacebookページ分ループする
foreach($pages["data"] as $page) {
// 特定のFacebookページの時に動作させる
//  ここら辺は状況に合わせて書いておく
if($page["id"] == "<FacebookページのID>") {
$pid = $page["id"];
// 以下に注意しながらウォールへ投稿。それ以外は通常の投稿と同じ
// ・apiのパラメータにFacebookページのIDを埋め込む
// ・access_tokenとして、Facebookページのaccess_tokenを設定する
$result = $facebook->api("/$pid/feed", "post", array(
"message"      => "メッセージ",
"picture"      => "画像のURL",
"link"         => "リンクのURL",
"name"         => "リンク名",
"description"  => "リンクの説明",
"access_token" => $page["access_token"]
));
}
}

facebookのタイムラインで非表示にした記事をやっぱり削除したいor再公開したい

一旦非表示にするとその記事がどこに行ったのやら見えなくなってしまったのでメモ。

Facebookの個人のタイムラインもページのタイムラインも同じ。「アクティビティログ」を参照すれば良い。個人のタイムラインの場合は、カバーの下右側辺りにあるはず。Facebookページの場合は、「Facebookページを編集」のプルダウンの下の方に「アクティビティログを利用」がある。

アクティビティログのページに移動すると、今までの投稿内容などFacebookでの行動履歴があるので、再度表示したかったり消したかったりする投稿を見つけて、右にある丸ポチをクリックすると、削除や非公開、公開が選択できる。良かった。

ただし、カバーの変更に関してはここから削除できない。一旦左にある日時のリンクをクリック、「カバー写真」のアルバムに移動して、ここの「この写真を削除」を選択してやる必要がある。多分、アクティビティログから辿らずにアルバム経由でも同じことができそうだけど試してない。

しかし、毎度のことながらFacebookのメニューは分かりづらい上に、よく変わるので困ったもんだなぁっと思ったりもする。どうにかならないのかしら。だれかAPI経由でFacebookのページを管理できるわかりやすいラッパーを作ってくれないだろうか。

FacebookとTwitterの使い分け?

しばらく間が開くとFacebookとTwitterの使い分け?的なものがよくわからなくなってくる。

多分、面白かったリンクを云々するのはTwitterの方がいいのだろう。技術的なことを流すのもTwitterが向いているのだろう。時事的なことやリアルタイムなこともTwitterが向いているのだろう。
となると「それ以外の話題」というのがFacebookのWallに書くための指標のようなものになるのだろうか。

図-10●利用者のつぶやきの種類(2009年12月調査) 日経BPデータボード

これによると、つぶやきの種類はこんな感じらしい。それぞれTwitter(T)、Facebook(F)として振り分けてみると多分こんな感じ
※ TwitterとFacebookで平等になるよう一部改変、その他一部項目改変

・F / 「いま何をしているのか」
・F / 「あいさつなど、一般的な会話」
・T / 「自分が思い付いた面白いフレーズやネタ」
・T / 「自分独自の意見やアイデア」
・T / 「ニュースサイトで自分が見付けたニュースなど」
・F / 「いまどこにいるか」
・F / 「自分が体験した事象や事件」※ 個人的なもの
・T / 「自分が体験した事象や事件」※ 社会的なもの
・T / 「ブログなどTwitter以外のサイトで見付けた興味深い記事」
・T / 「ブログや日記への誘導」
・T / 「Twitterについての意見や議論」
・F / 「Facebookについての意見や議論」
・T / 「Web上ではなく、リアルな世界で接した人から聞いた話など」
・T / 「Web上ではなく、テレビや雑誌・新聞などで見たニュース」

また、以下の種類はそれぞれに応じてということになるのだろうから除外
・「他人のつぶやきへの返信」
・「他人のつぶやきを転載」
・「その他」

「T/Fとか並ぶとTrue/Falseだよね」っていう話題はおそらくT。

APIを使ってPHPで自分のみ公開のアルバムを生成する

以下を参考に、必要そうな部分のみ。
Create photo albums and upload photos using the Facebook Graph API

基本的には、アルバム生成時に与えるパラメータにprivacy項目を追加して公開権限を設定する

$album_details = array(
'message' => 'Album desc',
'name'    => 'albam for app',
"privacy" => array(
"value"    => "CUSTOM",
"friends"  => "SELF",
),
);
$create_album = $facebook->api('/me/albums', 'post', $album_details);

詳しい指定は以下のページを参照。
Post – Facebook開発者

Facebookについて思うこと

先日より「~さんが、あなたと一緒に・・・で働いていると言っています」というお知らせが来る。問題は「・・・」の部分が人によって違うこと。正確に言うと指している先の実態は同じだけど、指しているFacebookページ?プレイス?が違う

さて、この辺が面倒くさくて何もしていないのだけど、どうしたもんだろうかね

ちなみにFoursquareなんかもそうだけど既存の情報の編集可能者が限定的過ぎるせいで
Wikipediaなんかと違ってちょっと整理しておこうかという気持ちどころかチェックインしておこうという気すら起こらない
まぁ、Foursquareはそれに嫌気がさしてやめたからいいんだけどさ

弊社Facebook勉強会

藤野 幸嗣 氏を弊社にお招きしてのFacebook勉強会。
都合2時間30分の長丁場で、時代背景から使い方考え方、今後の取り組みなどを織り交ぜた内容の濃いお話でした。

当日の配布資料なんと200ページ越え。一応社外秘で。

で、相変わらずせっかくの内容を独断と偏見に満ち満ちた再構築版。
本当は、詳しい実際の使い方や作り方もてんこ盛りだったのですが、そこら辺はばっさり割愛して抜粋

基本情報

項目 内容
*日程 7月15日(金) 17:30〜20:00
*主催 弊社
*会場 弊社 天神事務所

講師について

藤野 幸嗣 氏
twitter
大分大学でも講師をされているようです

Facebokと背景

仕事で使うためのFacebookをテーマに、ユーザとクリエイターの立場から

情報爆発

Webの時代はYahoo → Google → Facebookと移り変わってきている
これは年々爆発的に増える情報にどう向き合うかが関係している

リーダー 情報の入手方法
15年前 Yahoo リンクを辿る(Portal)
7年前 Google 検索する(Search)
現在 Facebook 人伝い(Social)

これからのキーワード

・ソーシャルメディア
・ソーシャルストリーム
・キュレーション

今までは「サイトのRSSを購読する」。これからは「人のフィードを読む」に。

ニュースフィードの制御がFacebookの本質
・エッジランクによる、表示される記事、順番も変わる

UIも変化する

・従来のクリックやボタンによる能動的な情報取得から、タッチやスクロールによる受動的な情報取得へ
 ・大量の情報をリアルタイムに捌く
 ・能動的なクリックやボタンを操作するは取得するためではなく、リアクションするため

・モバイルもガラケーからスマートフォンへ

Facebookの現状

日本では会員は380万人でキャズムは超えていない。若い人より大人が多い

世界では7億人を突破。

アメリカでもFacebookは友人との場で、商売の場ではない(日本で言うMixi内で商売をしようとするような感じ)
ソーシャルコマースに備えるための準備期間(fコマース、後述)

Facebookのビジョン

世界のあらゆる存在をノードにしてエッジランクによりシステム化する

・ソーシャルグラフ(関係)
 ・平均160人の友達(Friend)+インタレストグラフ(興味、Facebookページ)
 ・ノード(人、もの、場所、ページ、URL)とエッジ(関係)

・リアルテム
 ・全部見る必要はない

・リアルワールド
 ・実在の組織や人、物とのつながり

Web系業者にとってのFacebook

かつてのホームページブームと同じように見えるが、作成支援業者(Web系業者)の影は薄い
・運用に費用がかからない。場所代は無料
・Facebookページも作るだけなら数分で出来る
・ユーザとのコミュニケーションは担当者が自分で対応する必要がある(業者が代わりに対応できない)

ただし、九州からもFacebookやソーシャルを売りにした株式会社アラタナなどのベンチャーが出てきた

Facebookを使うための考え方

ウォールは自分の活動をアピールする場
個人としてのウォールと、個人をブランド化するためのウォール、(Facebookページなどの)担当者としてのウォールを兼ねる必要がある
プライベートなやりとりはグループでやることが望ましい

公開する情報の考え方

公知したくない情報は登録しない

・もちろん実名顔出しで
・個人情報は公開したほうが良い
・ウォールも公開したほうが良い
・写真は正面写真が良い
・嘘は書かない

実はFacebookは写真を中心としたコミュニケーション

Facebookで出来ること

Facebookページ

Facebookページには、公式ページと通常のFacebookページがある
・参加者一覧は管理者のみが確認できる
・参加者は、同様に参加している友人だけ確認できる
・管理者はFacebokoページと個人アカウントを切り替えて発言できる

まだ、Facebookページは宣伝やコマースには向いていない
→ ブランディングや・エンゲージメント、サポートには向いている

Facebookページを様々な場所に散らばる情報のHubとして利用する
→ WebサイトとFacebookページ、ウォールを組み合わせることでアクセスが循環しだす

※ 今現在、後付でFacebookページとPlaceを統合することが出来ない。もし必要ならばPlaceを作ってからFacebookページを作る必要がある

Facebookページはロングテール

大企業だからといって成果があるわけではない
例)TOSHIBA (株)東芝でも1000人ほど

小さくとも安定した顧客と繋がっているところが強い

エンゲージメントが重要
→ リアクションをもらう、リアクションをする
→ 継続した情報提供が鍵。どんな情報なら出せるかを考える

参考事例

fbrank.main.jp 日本語 Facebookページ ランキング

日本のFacebookページのランキング

無印良品

オーソドックスなFacebookページ

Best BuyShop + Share

商品情報をニュースフィード風に表示。各商品に「ask Friend」ボタンを設置。
「ask Friend」すると、友人の商品情報が流れ、それに対する評価を聞くことができる
例)高いんじゃないの?、安いね、それよかったよ、など

XO JAPAN

BtoBのサイトがBtoCも

Coca-Cola

勝手Facebookページから公式Facebookページへ

4つのR
・Review(コメントをチェックする)
・Response(反応する)
・Record(社内で記録を付ける)
・Redirect(散在するコンテンツを集める)

ストリームをアプリに閉じ込めてしまった悪い例

悪い例:NTTドコモ(NTT DOCOMO)NEW SMARTPHONE REVIEW

良い例:Harvard University

この件について、以前講師の藤野氏とのやり取り

吉川 晃生
ドコモ公式FacebookページのNEW SMARTPHONE REVIEW。
こういうカタログ的な見せ方がメインストリームに​なるんだろうか。
悪くはないと思うけど
6月3日 11:26

藤野 幸嗣
いや、たぶん勘違いしていると思いますよ。
6月3日 11:36

吉川 晃生
どの辺りがでしょうか?
6月3日 11:39

藤野 幸嗣
フィードの重要性を理解していないこと。
6月3日 11:39

藤野 幸嗣
Facebook発祥の地ハーバード大学と比較するとわ​かりやすいかも、
デザイン的には似ているけど、本質的に​非なるもの。
http://www.facebook.com/Ha​rvard
6月3日 11:46

吉川 晃生
なるほど。Facebookアプリ内で完結しているドコ​モとFacebookページの
ハブとして設計しているハ​ーバード大学と言った感じですかね。確かに似て非なるも​のですね
6月3日 11:52

http://www.facebook.com/akio.yoshikawa/posts/231228583557311

ドコモの事例では、一つのアプリにまとめるのではなく個別の機種ごとにFacebookページを立ち上げて、ドコモのページはそのHubになるべきだった

グループ

・公開、非公開、秘密のグループが作成できる
・プライベートなやりとりはグループで

似たような話は、先日森 氏からも
[2011-07-10-6]

Facebookアプリ

・iFrameで実装し、1メニュー1アプリ
・開発者登録が必要
・海外ではショッピング機能を盛り込んだ高度なものも
・10万件以上の登録

ソーシャルプラグイン

・Facebookのいいね、Twitterの呟く、Googel+の+1ボタン
・Facebookでは10種類ほどを提供(Social Plugins)

オープングラフプロトコルも要確認

[2011-06-03-1]

広告

・Googleアドワーズと同様のPPC、入札式の広告
・広告を表示する人の属性に合わせて出稿可能(性別、年齢、地域など)

まだまだ変な(怪しい)広告が多いので、参入にはまだ早いかも

リンクのシェア

キュレーション。情報をまとめてくれる人(キュレーター)を探す、情報をまとめて出す(キュレーターになる)

外からFacebookに情報を流すのは簡単(Twitter→Facebookなど)
Facebookから外に情報を流すのは難しい

また、自動的に外からFacebookに情報を流してもエッジランクによって全部見てもらえるかは不明。むしろスパム扱いに?

Fコマース

・Facebookの中で完結するEコマース。
・Facebookという世界共通のプラットフォームで、世界中を相手に出来るかもしれない
 ・Deal、Checkin、Instore、Credit、Place

キャンペーンを行うには、規約やガイドラインを確認する必要がある
Promotions Guidelines

いいねボタンを押してもすぐに元に戻ってしまう

Facebookのいいねボタンを押しても、なにも起こらずに元の表示に戻ってしまう

こういうイメージ
{{pure_html(‘‘)}}

特にFBMLではなくiFrameで実装している場合に発生する

よく遭遇した原因はこんな感じ
・appidがおかしい
・hrefで指定するURLがおかしい
 ・ページが404を返している
 ・noindexなどが指定されていてロボットがアクセス出来ない
・なんか変なキャッシュが残っている

いずれの場合も、とりあえずFacebookのLintをかけてみるのが一番早い
https://developers.facebook.com/tools/lint/

Facebook/Twitter – AIP CLOUD 3DAYS(番外編)

森 俊英 氏
中尾 要介 氏
中尾 克代 氏
梅崎 健理 氏

あまりITに関わりがなかった農家がどのようにしてFacebookを始めたか、ITが当たり前のデジタルネイティブがどのようにネットを使っているかの対比

Ustreamの動画はこちら

森 氏

福岡のIT社長のチャレンジングな日々: 「アナログネイティブ vs デジタルネイティブ」じゃないな!

Facebookの登録ユーザは7億人を突破。今年中に8億人?

日本でFacebookを使っているのは全体の3%、今使っているのは変な人、ごく一部。
一方のアメリカでは49%。インパクトが大きく違う

秘密のグループ

Facebookの秘密のグループで今企業間の打ち合わせなどが始まっている
→ 一昔前みたいに、月一のミーティングや打ち合わせなどでは遅すぎる。
→ そのスピード感の違いで、使っていない企業や人は気がつくと置いて行かれているかも

中尾 要介 氏、中尾 克代 氏

二人は兄妹。兄は茶畑農家、妹はITコンサルタント

今までITにはあまり縁がなかったが、妹のすすめでFacebookを初めてみた
お茶の旭志園。熊本県菊池市からお届けします
農業と地域活性を本気で考える

Facebookを初めて見て

・使っていくうちに、色々なリアクション(いいねやコメントなど)
・体験イベントの告知をFacebook上で動画を交えてアピール
 ・茶摘み体験のご案内とごあいさつ
・普段馴染みのない農作業や機械なども動画でアピール
 ・乗用の機械による茶摘みの動画です
・Facebookを見たというお客さんも。親しみを持ってもらえている

でも、まだFacebookを通したコミュニケーションには慣れていない。でも楽しい

コンサルタントの視点から(妹)

現在の社会は情報過多に苦しんでいる
→ 有限の時間をどのメディアに割り当てるか
→ Facebookは割り当てるにたるメディアだと思い、兄に進めた

梅崎 氏

デジタルネイティブは、SocialネイティブやCloudネイティブかもしれない
→ 常につながってる(いたい)
→ PCは使わない

いいねボタンを付けて統計情報(インサイト)を取得する

インストール

アプリの作成

以下のページから、サイト名とURLを登録する
http://developers.facebook.com/setup/
完了すると、以下の情報が取得できる

・アプリケーション名
・アプリのURL
・アプリID
・アプリの秘訣

インサイトの設定

以下のページより、右肩の「ウェブサイトのインサイト」をクリックする
http://www.facebook.com/insights/
ポップアップが開くので、先ほど作成したサイト名のアプリを選択するとmetaタグが手に入る
<meta property="fb:app_id" content="*************************" />
上記のメタタグを、いいねボタンをつけたいページのヘッダに貼り付ける
ドメインを設定して、「インサイトを取得」をクリックする
※ 上記メタタグを貼り付ける前にクリックするとエラーが発生するので注意

ボタンの設定

[2011-06-03-1]