ラベル facebook の投稿を表示しています。 すべての投稿を表示
ラベル facebook の投稿を表示しています。 すべての投稿を表示

2012年10月11日木曜日

Facebookの「宣伝する」リンクを非表示にする方法

Facebookで、自分の投稿を宣伝できるようになりました。

このように、「宣伝する」というリンクが現れます。

試しに「宣伝する」をクリックすると、こんな画面が出てきます。

これ、宣伝するつもりが全然ない人には邪魔ですよね。

Facebookヘルプセンターに書かれているように、投稿して6時間経つと「宣伝する」リンクは出なくなるのですが、投稿数が比較的多い人だと、目にする機会は多いと思います。

「宣伝する」リンクを非表示にする

Stylishというブラウザの拡張機能(アドオン)を使用します。
Chrome版Firefox版がありますので、どちらかのブラウザでインストールしてください。

次に、以下にアクセスして、拙作の「Hide boostActionLink」というユーザースタイルをインストールしてください。
Hide boostActionLink - Themes and Skins for Facebook - userstyles.org

「+ Install with Stylish」というボタンを押すとインストールされます。

以上で、「宣伝する」リンクが非表示になります。

また、拡張機能(アドオン)の管理で、インストールしたユーザースタイルの編集、有効化/無効化、削除が可能です。

この記事のリンクをシェアして、宣伝してみようかな(笑)

関連リンク

2012年3月1日木曜日

Facebookのいいね!ボタンを世界の言語で表示してみた

とりあえず興味本位で。

Facebookがサポートしている言語はXMLファイルから取得できますが、以下のドキュメントにそのリンクがあります。
Internationalization - Facebook開発者

現時点では77言語あるようですが、「English (Upside Down)」(en_UD)とか「Leet Speak」(fb_LT)など、ふざけたものも含まれます。「English (Pirate)」(en_PI)もジョーク?

これだけのボタンを表示すると、さすがに重いです。

いいね!ボタンの言語については、以下のリンクのFAQに、「How do I display the Like button in different languages?」というのがあります。
Like Button - Facebook開発者

ちょっと見た雑感とか。

  • ボタンが右に寄ってるのは、右から左に書く言語?カウントは左から右でいいの?
  • English (Upside Down)はカウントも逆にしてほしい。
  • Leet Speakの「<3」いいなと思ってFacebookの言語をLeet Speakに変えてみたらカオスすぎるw

表示形式(standard or button_count)といいね!の対象(この記事 or Facebookのトップ)を変えられるようにしてあるので、いろいろ試してみてください。Facebookのトップ、httpsの方は少ないですね。

追記: モバイルテンプレートだとボタンが出ないです。すみません><

表示形式:
いいね!の対象:
言語ボタン
Afrikaans
Arabic
Azeri
Belarusian
Bulgarian
Bengali
Bosnian
Catalan
Czech
Welsh
Danish
German
Greek
English (UK)
English (Pirate)
English (Upside Down)
English (US)
Esperanto
Spanish (Spain)
Spanish
Estonian
Basque
Persian
Leet Speak
Finnish
Faroese
French (Canada)
French (France)
Frisian
Irish
Galician
Hebrew
Hindi
Croatian
Hungarian
Armenian
Indonesian
Icelandic
Italian
Japanese
Georgian
Khmer
Korean
Kurdish
Latin
Lithuanian
Latvian
Macedonian
Malayalam
Malay
Norwegian (bokmal)
Nepali
Dutch
Norwegian (nynorsk)
Punjabi
Polish
Pashto
Portuguese (Brazil)
Portuguese (Portugal)
Romanian
Russian
Slovak
Slovenian
Albanian
Serbian
Swedish
Swahili
Tamil
Telugu
Thai
Filipino
Turkish
Ukrainian
Vietnamese
Simplified Chinese (China)
Traditional Chinese (Hong Kong)
Traditional Chinese (Taiwan)

2012年2月13日月曜日

ブログの記事をFacebookのAdd To Timeline(タイムラインに追加)に対応させる

Open Graph対応の何となくソーシャル風味なブログを作ってみた」で書いたように、このブログの記事を読んだことがFacebookのタイムラインに表示されるようなOpen Graph対応アプリを作成しましたので、作り方をまとめます。

Facebookアプリとしては最も簡単な部類に入るでしょうが、初めてだとそれなりに勉強になるかとは思います。

1. Open Graphを理解する

まずはFacebook開発者サイトの、以下のチュートリアルを読み、やるべきことを理解します。

Tutorial - Facebook開発者

2. アプリを作成

Facebookアプリの作成方法については割愛し、ブログを使ったウェブアプリの作成に必要な項目だけにとどめます。

まずは基本設定で以下を入力します。それぞれの環境に合わせて読み替えてください。

  • アプリのドメイン: ovreneli.blogspot.com
  • アプリをFacebookに結合する方法→ウェブサイト
    サイトURL: http://ovreneli.blogspot.com/

次に、[オープングラフ]-[Getting Started]でアクションとオブジェクトを定義します。

このアプリでは「read a article」としましたが、それだとニュースという扱いになるようです。

3. OGPの記述を追加

ここからはブログ側での作業になります。

OGPって何?って方は、以下のリンクに詳しくまとまっていますので、ぜひお読みください。

フェイスブック、ミクシィ、グリーで使われている OGP (Open Graph Protocol) とは何か - IT戦記

「いいね!」ボタン導入の際にすでにOGPを記述されている場合でも、オブジェクトの定義は追加する必要があるかと思います。「read a article」のarticleです。

Bloggerの場合、index(トップページ、ラベル)、item(記事ページ)、archive(アーカイブ)、static_page(固定ページ)の4種類のページタイプがあるみたいですが、itemのページでog:typeをarticleに設定する必要があります。

以下、Bloggerテンプレートでの記述例です。他のテンプレートをお使いの場合は読み替えてください。

名前空間の追加(青字の部分)

<html b:version='2' class='v2' expr:dir='data:blog.languageDirection'
  xmlns='http://www.w3.org/1999/xhtml'
  xmlns:b='http://www.google.com/2005/gml/b'
  xmlns:data='http://www.google.com/2005/gml/data'
  xmlns:expr='http://www.google.com/2005/gml/expr'
  xmlns:fb='http://www.facebook.com/2008/fbml'
  xmlns:og='http://ogp.me/ns#'>

OGPの追加(<head>と</head>の間、<b:skin>の上あたりがよさそう)

<b:if cond='data:blog.pageType == &quot;index&quot;'>
    <meta expr:content='data:blog.title' property='og:title'/>
<b:else/>
    <meta expr:content='data:blog.pageName' property='og:title'/>
</b:if>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
    <meta content='article' property='og:type'/>
<b:else/>
    <meta content='blog' property='og:type'/>
</b:if>
    <meta expr:content='data:blog.url' property='og:url'/>
    <meta expr:content='data:blog.title' property='og:site_name'/>
    <meta content='画像のURL' property='og:image'/>
    <meta content='アプリケーションID' property='fb:app_id'/>
    <meta content='ja_JP' property='og:locale'/>

4. Add To Timelineプラグインを設置

<body>のすぐ下あたりに、以下を追加します。
「いいね!」ボタンをiframe以外で設置している場合は、window.fbAsyncInitの追加だけで済むと思います。

<div id='fb-root' style='display:none;'></div>
<script>
window.fbAsyncInit = function() {
  FB.init({
    appId: 'アプリケーションID',
    status: true,
    cookie: true,
    oauth: true
  });
};

(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = '//connect.facebook.net/ja_JP/all.js#xfbml=1&amp;appId=アプリケーションID';
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>

次に、サイドバーなどにHTML/JavaScriptガジェットを追加します。

<fb:add-to-timeline></fb:add-to-timeline>

テンプレートを保存して、プラグインの表示を確認します。

また、この時点で、curlを使って動作確認することが可能です。
確認方法は、アプリのページの[オープングラフ]-[Dashboard]で、Action Types: Readの「Get Code」を参照してください。

5. publishの実装

最後に、fbAsyncInit内に「read a article」をpublishする実装を追加します(青字の部分)。

publishする条件は以下です。

  • ページのog:typeがarticleであること
  • ユーザーが「タイムラインに追加」でアプリを許可していること

og:typeの判定はBloggerテンプレートのページタイプで代替していますが、環境によってはJavaScriptで判定するなど、いくつかの方法が考えられると思います。

<div id='fb-root' style='display:none;'></div>
<script>
window.fbAsyncInit = function() {
  FB.init({
    appId: 'アプリケーションID',
    status: true,
    cookie: true,
    oauth: true
  });
<b:if cond='data:blog.pageType == &quot;item&quot;'>
  FB.getLoginStatus(function(response) {
    if (response.status === 'connected') {
      setTimeout(function() {
        FB.api('/me/news.reads', 'post', { article: '<data:blog.url/>' }, function(response) {
          /*window.console &amp;&amp; console.log(response);*/
        });
      }, 15000);
    }
  });
</b:if>
};

(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = '//connect.facebook.net/ja_JP/all.js#xfbml=1&amp;appId=アプリケーションID';
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>

テンプレートを保存して、動作確認をします。

うまくいくと、15秒後にタイムラインに出るはずです。Washington Post Social Readerなどのニュースと一緒になってしまうんですけど…

成功した場合、FB.apiのコールバックでresponse.idがセットされていますので、動作しなければresponseを確認しましょう。

まとめ

最も簡単なFacebookアプリの作り方を紹介しました。

日本でもそろそろOpen Graph対応アプリの開発が活発になると面白いなと思っています。

2012年2月12日日曜日

Open Graph対応の何となくソーシャル風味なブログを作ってみた

設定方法など、解説エントリーは後で追加していきたいと考えていますが、今回はひとまず、カスタマイズした内容をまとめておきます。

1. タイムラインに追加

FacebookのOpen Graph活用事例です。

ブログの右側にある「タイムラインに追加」ボタンを押すと、以後、このブログの記事を読んだというアクティビティが、タイムラインに表示されるようになります。

今のところ控えめに、15秒以上読んでいただいた場合に限定しています(笑)

ぜひ「タイムラインに追加」を押して、15秒以上読んでいただければと思います。

2. DISQUSコメントシステム

どうしてFacebookのコメント使わないの?って言われそうですが、Facebook以外のアカウントでもコメントできる方がいいと考えて、DISQUSを選択しました。

Twitter、Facebook、Googleなどのアカウントでコメントできます。

また、モバイルでも利用可能です。

3. ソーシャルボタン

共有ボタン類

Blogger標準の共有ボタンは挙動も含めイマイチなので、自分で設置しました。

技術的な内容を書いていくつもりなので、LinkedInも含めています。

フォローボタン類

右側に各種SNSのフォロー系ボタンをまとめてみました。

どれもフォロアーが多くないですが、そこは今回の主題ではありませんし、設置すると効果があるかという実験でもありますので、気にしないでください><

4. Google+連携

読者の方には関係のない話ですが、投稿後に投稿をGoogle+で共有するのが、非常に簡単になっています。

5. 今後の課題

  • 「タイムラインに追加」のモバイル対応
  • 「ソーシャルボタン」のモバイル対応
  • 共有ボタンの追加の検討(はてなブックマーク、mixiチェックなど)

まずは形だけ整えてみたって状態ですので、内容のあるエントリーを書き続けていくのが、最大の課題ですけどね(苦笑)