注意。投稿はできるし自分のタイムラインには投稿が表示されますが、FBに申請しないとほかの人のタイムラインには表示されません。
##1.FBに登録
もうすでにアカウントを持っている人は飛ばして OK。
1-1.FBにアクセスしてトップページからアカウントを作成。
https://www.facebook.com/
1-2.個人情報登録。公開範囲は気をつけて。
##2.開発者登録
2-1.FBにて電話番号もしくはクレジットカード番号を登録。そうしないと開発させてくれない。
https://developers.facebook.com/
2-2.FB developerにアクセスしログイン。ログインするとなぜかFBのタイムラインに飛ばされる謎仕様なのでもう一度developersにアクセス。
https://developers.facebook.com/
##3.アプリ登録
3-1.上のメニューのMY Appsをクリック、[Add a New App]をクリックし、phpでうごかすので[www(ウェブサイト)]をクリック。
3-2.アプリの名前を入力し、Create New Facebook App IDをクリック。適当に「test」とかでもOK。
3-3.Is this a test version of another app? はいいえでOK。
3-4. カテゴリーは適当にエンターテイメントでも教育でもいいので選んでOK.
3-5.Tell us about your websiteのところにサーバかローカルのURLを入れとくと使い勝手良くなるけれど、別に無視して右上のskip quick startクリックしちゃってOK
##4.SDK for PHP v5.0をダウンロードもしくはサーバへアップロード
4-1.Facebook SDKをダウンロード。こいつ使うと簡単に投稿できるようになってる、くらいの理解でOK。
https://developers.facebook.com/docs/php/gettingstarted/5.0.0
githubからも入手可能だけれどこっちはv4
https://github.com/facebook/facebook-php-sdk-v4
4-2.サーバー、もしくはローカル(サーバ起動してね。)にダウンロードしたSDKをアップロードして解凍。Facebookのパス(リンク)を確認しておく。
##5.各パラメータを入手
5-1.上のメニューからTools&Supportをクリック。Graph API Explorerをクリック。
投稿にはこのグラフAPIというのを使用する。投稿権限(permission)「pubrish_actions」というのが必要です。FBページに投稿する場合も同様に「publish_pages」が必要。これはスパムアプリが流行ったせいで申請しないともらえないようになっちゃったけれど、自分のタイムラインでテストする分には使えるので、以下にその方法を紹介。
5-2.右上のapplication?のとこでさっき入力したアプリ名を選択
5-3.そのすぐ下にあるGet TokenからGet Access Tokenを選択、上にあるExtended Permissionsをクリックし、「pubrish_actions」にチェックをいれる。
5-4.Get Access Tokenをクリック。[アプリ]は次の情報を受け取ります: あなたの公開プロフィール。という画面が出てくるのでOKをクリック。赤い注意書きで「以下に示す権限の一部はFacebookで使用するように承認されませんでした。」とか出てくるけど気にしない。同様に「cheezがあなたの代わりにFacebookに投稿する許可を求めています。
投稿を誰とシェアしますか?」という画面が出てくるのでこれもOKをクリック。共有範囲は友達を選択すればいいのだけれど、申請しないまま投稿しても友達のタイムラインに反映されない
5-6.もとの画面にもどってAccess Token:のところに表示されるので、左側の[i]ボタンを押して右下のOpen in Access Token Toolをクリック。
5-7.左下のExtend Access Tokenボタンをクリック。FBのパスワードを求められるので入力。この文字列をテキストエディタとかにメモる。
##6.投稿の準備と投稿
6-1.上のメニューのMy Appから作ったアプリを選択。
6-2.App IDをメモる。右のApp secretもshowボタンを押してパスワードを入力し表示してコピペでメモる。
6-3.phpファイルをつくる
<?php
//AppID,APP secret,access tokenの設定を入力。access tokenは超長い文字列になってるはず。
$appId = '**********19094';
$secret = '3e**890458184d6******9d6';
$access_token ='**************************scOBK9Q6p1XZAIiZButIJFpnmdIZC********************************************************39MBoEdIUEmDZAolbFWnkdRNyk3qZBlKs5NZCWF*************';
// 投稿したい文章を入力
$message = 'FB APIからの投稿です。';
// PHP SDKを読み込む。パスを確認すること。
require_once 'src/facebook.php';
$facebook = new Facebook(array('appId' => $appId, 'secret' => $secret));
// Facebookオブジェクト生成時にappId、secretを指定しなくても投稿可(投稿時のパラメータにaccess_tokenを指定するため)
// POSTメソッドで「/me/feed/」を指定すると自分のタイムラインに投稿できる
$facebook->api('/me/feed/', 'POST', array('access_token' => $access_token, 'message' => $message));
?>
http://socialmedia.project0884.com/facebook/post_wall.phpを参照しました。
6-4.post.phpにアクセスすれば投稿完了。以下はつまづきやすい点。
6-5.#100エラーが出た場合、appIDやsecretやaccess_tokenなど必要な変数やスペルが間違っている可能性を確認。
6-6.#200エラーが出た場合、Get Access Tokenで管理権限(permissions)がちゃんと設定されていない可能性を確認。