皆様、こんにちは。どんぶラッコです。
今日は、「お知らせページをfacebookページと連携させる」というテーマで記事を書きます!
具体的に言うとこんな感じです。以前作ったピアノ教室のトップページです。

一見するとお知らせページのように見えますが、実はこれ Facebookの教室グループに投稿された投稿一覧を引っ張ってきています。

今日はそのやり方についてまとめていきたいと思います!
1. 長期トークンを取得する
まずはFacebookの長期アクセストークンを取得する必要があります。トークンの取得方法については、以下の記事がとても参考になりました。
2021年1月時点では上記手順で問題なくワークしています。
Get通信を実施して記事一覧を取得する
トークンが無事に発行されたら、getapiを叩いて記事一覧を取得しましょう。記事一覧を取得するだけであれば特に認証は必要ありません。
axiosモジュールを使うとこんな感じです。
axios.get('https://graph.facebook.com/{GROUP_NAME}/posts?access_token={ACCESS_TOKEN}&locale=ja_JP&fields=id,message,created_time')GROUP_NAME にはご自身が作成したグループ名、 ACCESS_TOKEN には先ほど発行したアクセストークンを添付します。
その他のオプションとして、
- locale… 日本 (- ja_JP)を指定
- fields… 今回は、- id,- message,- created_timeの3つを取得
としています。
あとはページに反映させるだけです!例として Vue.js + Vuetify 構成で記述したHTMLを添付しておきます。
<div>
  <div v-for="n in news" :key="n.id" class="d-flex align-sm-center mb-1">
    <div
      class="mr-1 mr-sm-4 caption font-weight-bold"
      :style="{'min-width': $vuetify.breakpoint.xs && '74px'}"
    >
      {{ $vuetify.breakpoint.xs? $moment(n.created_time).format('YYYY/MM/DD') : $moment(n.created_time).format('YYYY年MM月DD日') }}
    </div>
    <a
      :href="`https://www.facebook.com/${group_name}/posts/${n.id.split('_') }`"
      target="_blank"
      style="text-decoration: none; color: #323232"
      class="text-caption text-sm-body-1"
    >
      {{ n.message.split('\n')[0] }}
    </a>
  </div>
</div>
}`"
      target="_blank"
      style="text-decoration: none; color: #323232"
      class="text-caption text-sm-body-1"
    >
      {{ n.message.split('\n')[0] }}
    </a>
  </div>
</div>結構簡単に出来ちゃいますよね!みなさんも試してみてください♪






















