株式会社オーツー|スタッフブログ検索:公式サイトお問い合わせメニューすべて(96)ゲーム開発(3)Web制作(32)デザイン(4)サーバー(23)企画・開発(2)その他(32)オーツー公式ページはこちらお問い合わせWeb制作2015.7.23池田graphAPIを使ってfacebookの投稿を読み込む方法こんにちわ。webデザイナーの池田です。facebookの更新情報が取得できなくなり、すこしハマってしまったので共有させて頂きます。同じ現象にお悩みの方の参考になればと思います。弊社ではgoogleFeedApiを使ってfacebookが発信しているfeed情報を取得してタイムラインの更新をお知らせしておりました。ある日突然エラーが・・・。要するにフィードが読み込めないよーと言っているようです。それもそのはず、実はfacebookのfeed配信の機能が2015年6月23日をもって終了となっていました。RSS/XML.と、いうことで別の方法でタイムラインを取得してみます。GraphAPIを使ってタイムライン情報を取得しようアプリの登録をされている前提で進めていきますので、1から始める方はまずはアプリの登録をしてAppID等取得してくださいね。それでは必要な情報を見ていきましょう。AppID、APP_SECRETの確認https://developers.facebook.com/apps/アクセストークンの確認(取得)https://developers.facebook.com/tools/accesstoken/もしくは先ほど入手した、IDとSECRETを使って取得しましょう。以下のURLで【~】は削除し、代わりにIDとSECRETを入れてアクセスするとAPPアクセストークンが取得できます。https://graph.facebook.com/oauth/access_token?client_id=【APP_ID】&client_secret=【APP_SECRET】&grant_type=client_credentialsgraphAPIでjsonを取得してみようさて、準備は整いましたね!それではjsonデータを取得してみましょう。facebookのapiを簡単に実行できるツールが用意されているのでそれを使ってjsonを見てみましょう。exploreリクエストの種類は「GET」、その横のテキストボックスには、取得したいページのappIDを入力します。取得したいページURLのhttps://www.facebook.com/peakvoxの末尾部分ですね。今回はfeed情報がほしいので、以下のように入力します。https://graph.facebook.com/v2.3/peakvox/feedいかがでしょうか。取得ができない!という方はアクセスの許可がされていない可能性があるので、トークンの更新をしましょう。Token」をクリックし、許可(取得)したい情報を選択します。今回は、user_postのみで大丈夫ですね。GetAccessTokenを押すことで更新、submitを押して情報を取得します。上記画像のようにJSONが取得できましたでしょうか?phpを使ってサイトに表示してみようそれではjsonデータを取得し、サイトに表示してみましょう。jsonデータを取得するには先ほどgraphAPIで確認したgetのフィールドに入っているURLにアクセストークンを足したものを入れます。アドレスが一部隠れている場合はフィールド内の「→」をクリックするとすべて表示されます。https://graph.facebook.com/v2.3/【APP_ID】/feed?access_token=【APP_TOKEN】;今回の場合、自社サイトに情報を表示したいだけなのでUserTokenではなくAppTokenを使いましょう。UserTokenというのはOAuth認証した際に発行されるユーザー固有のトークンになります。AppTokenというのはfacebookアプリ固有のトークンになります。今回は自分のアプリから情報をもらうだけなのでAppTokenを使うというわけですね。UserTokenはすぐに有効期限が切れてしまいますが(最長60日)、AppTokenは有効期限がありません。phpで取得しようということで今回の取得、表示の内容は以下とします。それでは、今回は更新された内容の本文と投稿時間を取得します。記事へのリンクは今回はIDを分割してurlを生成することとします。本文の内容は110文字までで、それ以上は”...”を表示し省略します。//記事へのリンク生成のためidを取得して"_"の前後で分割します。}?></body></html>実行結果jsonの取得の際はfile_get_contents関数を使っても大丈夫です。弊社の場合サーバーのallow_url_fopenの設定上httpsでの取得ができませんので今回はcURL関数を使っています。後日談ですが、ヘッダー画像の変更などで画像のみ投稿された場合に空のデータが表示されてしまったので、その対応策を記載しておきます。//記事へのリンク生成のためidを取得して"_"の前後で分割します。"...")."");}Facebookへ投稿した際のコメントは”message”と言うキーで返ってきていましたが、コメントをしていない場合は空データではなく、キー自体がありませんでした。ちなみに、$ary[‘message’]==””の書き方だと、環境によってはコメントがない場合に警告(“Notice”)が表示されていまう可能性があるため、キーのチェックで対応しています。さいごにいかがでしたか。WHを使ってSES...2019/3/29PHPExcelでファイル作成から値の取得2018/3/22メニューを閉じるCONTACTゲーム開発、Webサイト制作に関するご相談等ございましたら、お気軽にお問い合わせください。