いつの間にかFacebookのシェア数が表示されなくなっていました。
どうやら、API仕様が変わっていたようで、Facebookのアクセストークンを取得した後に、テーマの修正が必要だったようです。
そこで今回は「アクセストークン」についての簡単な説明と、Facebookのシェア数が表示されるまでの対応方法について紹介します。
アクセストークンとは?
私たちの個人情報(ユーザーデータ)は、Facebookが管理するリソースサーバーに保持されています。
WordPressなどのクライアントアプリは、リソースサーバーに対してAPIを介してユーザーデータを取得しにいくわけですが、悪意のあるユーザー(あるいはアプリ)にユーザーデータを取得されると困りますよね。
そこで、ユーザーデータにアクセスしていいかどうかを判定するために、事前に「アクセストークン」というものを付与しておきます。
つまり、クライアントアプリは「アクセストークン」をリソースアプリに提示することでユーザーデータのアクセス権を獲得しているんですよね。
今回は直接的にはユーザーデータを取得しにいくわけではありませんが、シェア数を取得するために「アクセストークン」を付与してもらう必要があります。
Facebookのアクセストークン取得方法
まずは、「Facebook for Developers」サイトで、Facebookアプリの作成と各種設定を行います。やり方については以下のURLを参考にしてください。
「Facebook for Developers」サイトに移動して開発中のアプリを選択した後は、左側にあるメニューの「設定」→「ベーシック」を選択し、右側に表示される「アプリID」と「app secret」を取得します。
「app secret」は、「表示」をクリックしてFacebookアカウントのパスワードを入力することで確認できます。
では次に、取得した「アプリID」と「app secret」を以下のURLの該当箇所を置き換えてアクセスします。
https://graph.facebook.com/oauth/access_token?client_id=「アプリID」&client_secret=「app secret」&grant_type=client_credentials
すると、下記のようなテキスト形式で「アクセストークン」が返ってきます。これでアクセストークンを取得することができました。
{"access_token":"「アクセストークン」","token_type":"bearer"}
WordPressでシェア数が取得できるコード
では、最後に取得したアクセストークンを使ってWordPressでシェア数が取得できるように設定しましょう。
今回はjQueryでFacebookのシェア数が取得できるコードを書きました。「アクセストークン」は取得した値に置き換えてください。
あとは、シェア数を表示したい箇所に以下のコードを書きます。
0
これでシェア数が表示できるようになりました。
ちなみに、「シェア数を取得したいURL」と「アクセストークン」を以下のURLの該当箇所を置き換えてアクセスすると、
https://graph.facebook.com/?fields=engagement&id=「シェア数を取得したいURL」&access_token=「アクセストークン」
シェア数やリアクション数などが確認できます。
{ "engagement": { "reaction_count": , "comment_count": , "share_count": , "comment_plugin_count": }, "id": "「シェア数を取得したいURL」" }
また、先ほど紹介したjQueryのコードでは「share_count」を取得するようにしていましたが、リアクション数(reaction_count)などに変更することも可能です。
コメント