1. Home
  2. Webデザイン
  3. html+CSS+javascript
  4. Facebookのいいね・シェア数が表示されなくなったので修正しました!

Facebookのいいね・シェア数が表示されなくなったので修正しました!

facebook_graph_api_000.png

先日から記事のFacebookのいいね数(シェア数)の自作ボタンの数が表示されなくなっていることに気がつきました。最初は一時的なサーバーの問題かと思ったのですが、数日経っても表示されないので調べてみたらなんとFacebook Graph API v2.8が2019年4月18日までだったようです。それに伴いこのAPIのバージョンを使っているブログではシェア数などが表示されなくなりました。

Facebook Graph API v2.9以降ではアクセストークンを取得しないと、シェア数の取得ができなくなっているため、今までより少し面倒になっています。というわけで、今回は最新のFacebookでのブログの記事のシェア数の取得方法について書きたいと思います。

Facebook for Developersに登録してシェア数を取得しよう!

facebook_graph_api_001.png

Facebook for Developersのサイトにアクセスします。

Facebook for Developers facebook_graph_api_002.png

右上のスタートガイドを押して、「次へ」を押します。すでにFacebookアカウントを持っていればそれを使ってFacebook for Developersに登録できます。

facebook_graph_api_003.png

アプリ名とメールアドレスを入力して「次へ」を押します。

facebook_graph_api_004.png

「自分に一番当てはまる役割は?」と聞かれるので今回の場合は「開発者」を選択します。

facebook_graph_api_005.png

「Add Your First Product」を押します。

facebook_graph_api_006.png

「製品を追加」から「Facebookログイン」を選びます。

facebook_graph_api_007.png

。アプリのプラットフォームを聞かれるので「ウェブ」を選択します。

facebook_graph_api_008.png

ウェブサイトのURLを聞かれるので、自分のサイトのURLを入力して「Save」を押します。この後ステップ5までありますが、適当に読んで飛ばしてもOKです。

facebook_graph_api_011.png

左にある「プロダクト」→「Facebookログイン」→「設定」を開きます。「有効なOAuthリダイレクトURI」に自分のサイトのURLを指定して「設定を保存」を押します。

facebook_graph_api_012.png

左上にある「設定」→「ベーシック」を開きます。「アプリドメイン」「プライバシーポリシーのURL」を指定します。カテゴリは適当に「エンターテイメント」にして「設定を保存」を押します。

facebook_graph_api_013.png

右上にある「ステータス:開発中」の隣りにある「オフ」を押してアプリを公開状態にします。

facebook_graph_api_014.png

下記URLの{アプリID}と{自分のサイトのURL}を書き換えて、ブラウザでアクセスすると上記のような表示になるのでログインします。

https://www.facebook.com/dialog/oauth?client_id={アプリID}&redirect_uri={自分のサイトのURL}
Access Token

続いてアクセストークンを取得するためのURLにアクセスします。{アプリID}、{app_secret}は手順10のページで確認できます。

https://graph.facebook.com/oauth/access_token?client_id={アプリID}&client_secret={app_secret}&grant_type=client_credentials

正しくアクセスできれば下記のようなjsonが返ってくるのでaccess_tokenをメモしておきます。このアクセストークンはシェア数を取得する際に使います。

{"access_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","token_type":"bearer"}

シェア数の取得

Share/Like

あとは取得したアクセストークンを使って、上記のようなURLで記事のシェア数を取得してきます。

https://graph.facebook.com/?id={シェア数を取得したい記事のURL}&fields=og_object{engagement},engagement&access_token={アクセストークン}

正常に取得できれば下のようなjsonが返ってきます。

{
   "og_object": {
      "engagement": {
         "count": 128,
         "social_sentence": "128 people like this."
      },
      "id": "118816328283759"
   },
   "engagement": {
      "reaction_count": 63,
      "comment_count": 42,
      "share_count": 23,
      "comment_plugin_count": 0
   },
   "id": "http://shopdd.jp/blog-entry-1120.html"
}

以前のFacebook Graph API v2.8の時のjson形式から少し変更されているようです。なので既存のjavascriptコードを適宜を書き換えてください。

今回の個人的感想

今回はFacebookのシェア数を取得するためのFacebook Graph APIの記事でした。私と同じようにFacebookのシェア数ボタンを自作している人は同じような影響を受けている可能性が高いですね。以前まではこんな面倒な手順を踏まなくても簡単に取得できていたのですが、Facebook Graph API v2.9以降では結構手間がかかりましたね。今までは誰でも値を取得できていたのですが、登録とOAuthでサイトを認証してアクセストークンの取得が必要となったのでだいぶ大きな変更です。とりあえずこれで今までどおりにシェア数が表示できるようになったので良かったです。

面倒とは言え、Facebookのシェア数だけ表示されてないのはおかしいので、今回もしっかり変更に対応しました。ついでに先日終了したGoogle+へのソーシャルリンクを外して、SNSボタンのデザインも変更しました。なにげにこのデザインテンプレートを作ってから5年近く経っているので、所々古いと感じる部分もあったりしていますが、こういう機会がないと変えていかないので良かったかもしれません。今までと比べてかなりスッキリした感じになりました。記事を共有したいときなどにぜひ活用してください。

パソコンやスマホなどのガジェットに興味があり、大学で情報工学の勉強してシステムエンジニアに。ブログ歴は15年以上。ITの専門的な知識はそこそこあり、国家資格の情報処理技術者試験のスキルレベル4「情報セキュリティスペシャリスト」や「ネットワークスペシャリスト」などを取得。

Related article

COMMENT TO THIS ENTRY