Facebook APIについて
Facebook APIについて、ちょっと調べてみたので備忘録。
まず、APIを使うためにはFacebook Develpersに登録しないといけないのですが携帯電話かクレジットカードによる認証が必要です。
自分は携帯電話の認証コードが上手く行かなかったで、クレジットカードで認証しました(認証が通った後は削除した)
またFacebook APIを利用するには、Facebookアプリに紐付いたアプリIDとシークレット(パスワードみたいなもの)が必要です。
そのアプリIDとシークレットも、特定のFacebookアプリに登録した特定のドメインでしか使えません(^_^;)
なかなかにガチガチの仕様ですね…。
とりあえず、自分の代わりにFBのウォールに投稿してくれるPHPアプリを作成。
phpからfacebook apiを使うためのSDKがあるのでダウンロードしておく。
https://github.com/facebook/facebook-php-sdk
以下のコードで投稿可能でした。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
<?php require './facebook.php'; //アプリIDとシークレットを登録 $facebook = new Facebook(array( 'appId' => '', // 独自のアプリID 'secret' => '', // 独自のシークレット 'cookie' => true )); $uid = $facebook->getUser(); if ($uid) { try { // ユーザが取得できた場合 $me = $facebook->api('/me'); $result = $facebook->api("/me/feed", "post", array( "message" => '自作PHPプログラムからFacebookウォールへの初投稿!' . "\n" . '改行も可能です。', "action" => json_encode(array( "name" => 'リンク名', "link" => 'http://~~')) )); } catch (FacebookApiException $e) { //エラーの場合は、メッセージを出力して終了 throw new Exception($e->getMessage()); } } else { // ユーザが取得できなかった場合 $param = array( 'display' => 'popup', 'redirect_uri' => "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"], 'scope' => 'publish_stream', ); //ユーザに自分の代わりに投稿させる権限を与えるか? $fb_login_url = $facebook->getLoginUrl($param); header("Location: " . $fb_login_url); die(); } |