0からのプログラミング講座
     Stage6
 本⽂文書のいかなる部分をも、事前の許可なく複写したり転送したりすることはできません。




           © Toshiyuki Tanaka & Jun Chiba     1
ゴールイメージ


           l  Stage6のゴールイメージ




                   メールを送信した時のように
                   phpからFacebookのウォールに
                   投稿できること




                                                                          2	


Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
API(1/3)


           l  API = Application Program Interface
                -  プログラムをより簡単に実装できるよう⽤用意された関数群
                   (ライブラリ)を利利⽤用するための仕組み

                        通常のプログラミング                                         APIを使ったプログラミング

                             ⼊入⼒力力値                                            ⼊入⼒力力値

                                                                                                 もともと⽤用意されている
                                        処理理                                             API
                                                     ⾃自分で実装                                      →呼び出して利利⽤用するだけで
                                                                                                   結果を得られる

                                              出⼒力力値                                           出⼒力力値




                   -    あらかじめ、さまざまな処理理を⾏行行うAPIが⽤用意されていれ
                        ば、プログラマはそれらを組み合せるだけで、⽬目的の処理理
                        結果をプログラムから得ることができます。


                                                                                                                   3	


Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
API(2/3)


           l  簡単にいうと・・・
               -  GoogleやYahoo、Facebook、Twitterなどの既存の
                 システムの機能や、データベースにアクセスするための仕組み    
           あなたのプログラム


                                                        この予定を
                                                     Googleカレンダーに
                                                       登録しておいて


                                                           Google  API

           あなたのプログラム

                                                  #zeroprmっていう
                                                 ハッシュタグがついた
                                                ツイートを20件ちょうだい


                                                           Twitter  API
                                                                               4	


Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
API(3/3)


           l  APIの種類
                -  世の中にはサービスがAPIを公開しています。
                -  Google、Yahoo、Facebook、Twitter、はてな
                  ホットペッパー、Amazon、じゃらん・・・
                -  書ききれないのでここを参照!
                    ü http://ma8.mashupaward.jp/apis?locale=ja

           l  APIを公開する理理由
                -  マッシュアップによって⾃自社にはないコンテンツを
                  提供する為と、⾃自社サービスの利利⽤用を急速に拡⼤大する為
                  等の理理由があると思います。

                   例例:Twitter
                   TwitterはTwitterクライアントというマッシュアップサービス
                   によって使いやすくなり、多くの⼈人に利利⽤用されている。                                5	


Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
Facebook API(1/8)


           l  Facebook APIを使う

                   -    今回は数あるAPIの中からFacebookのAPIを利利⽤用してみた
                        いと思います。

                   -    イメージとしてはFacebook社が管理理しているデータベー
                        スに対して、プロフィール情報の取得や、つぶやき情報を
                        登録できるようになります。

                   -    ただし、Facebook社としては直接的にデータベースに命
                        令令を実⾏行行できるようにしてしまうと、全データを削除され
                        る危険性もあるので、APIという仕組みを使って各種デー
                        タにアクセスできるようにしています。



                                                                             6	


Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
Facebook API(2/8)


           l  Facebook APIを使う

                   -    まずはこのサイトからFacebook APIを利利⽤用するために
                        Facebookが⽤用意してくれているファイルをダウンロード
                        してみましょう。(Zipボタンでダウンロードできます)
                         ü https://github.com/facebook/facebook-php-sdk




                                   ZIPを
                                  クリック
                                                                             7	


Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
Facebook API(3/8)


           l  Facebook APIを使う

                   -    ダウンロードしたZipファイルを解凍すると(ダブルク
                        リックで解凍できます)、中にはexamplesやsrcといった
                        フォルダが⼊入っていることが確認できると思います。




                                                                             8	


Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
Facebook API(4/8)


           l  Facebook APIを使う

                   -    examplesフォルダの中のexample.phpがサンプルプログラ
                        ムとなります。サクラエディタまたはKeditで開いて中を
                        ⾒見見てみましょう。




                                                                             9	


Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
Facebook API(5/8)


           l  Facebook APIを使う
                -  example.phpのappId,secretを以下のように編集して保存
                   下さい。
           ・・・なんか書いてある。ここはいじらない。・・・

           require '../src/facebook.php';

           //ここ数値は、このアプリのIDが334993866548043で、
           //このアプリのパスワードが9a185006487e4f063059f26f2aa32859
           //ということを意味しています。(アプリによって異なります)
           $facebook = new Facebook(array(
               'appId'             => '334993866548043',
             'secret' => '9a185006487e4f063059f26f2aa32859',
           ));

           ・・・なんか色々書いてある。ここはいじらない。・・・

                                                                             10	


Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
補⾜足                                                         requireの意味


           l  別のファイルに書いてあることを呼び出す
               -  requireとは「要求する」という英単語の意味ですから、  
                  その後に書かれたファイルを要求する、という意味になり
                  ます。
               -  つまり、下のケースの場合、このプログラムから
                  facebook.phpに書いてあることを使うよ、という意味にな
                  ります。
               -  facebook.phpとは、Facebook社がFacebookアプリを開発
                  する⼈人向けに⽤用意してくれたファイルです。

                   -    ちなみに、 ../src/ とは、このファイルがあるフォルダの上
                        の階層(= ../)にあるsrcというフォルダの中にある、
                        facecook.phpを使うよ、という意味になります。

           require '../src/facebook.php';

                                                                           11	


Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
Facebook API(6/8)


           l  Facebook APIを使う
                -  examplesとsrcフォルダをフォルダごとアップロードしま
                   す。




                                                                             12	


Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
Facebook API(7/8)


           l  Facebook APIを使う
                -  htmlやphpを実⾏行行する⼿手順で先ほどのexample.phpを実⾏行行
                   してみましょう。




   examples/
    をクリック


                                            example.php
                                              をクリック
                                           login  facebook
                                                                             あなたのプロフィール
                                          のリンクをクリック
                                                                               が表⽰示される
                                                                                          13	


Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
Facebook API(8/8)


           l  Facebook APIを使う
                -  facebookから⾃自分の基本データの情報を取得している。
           ・・・なんか書いてある。ここはいじらない。・・・

           if ($user) {
             try {
              //facebookのapiからme(=自分)の情報を取得しろ、の意味
              //この1行で情報が取得できるのがapiの凄さ
                   $user_profile = $facebook->api('/me');

               } catch (FacebookApiException $e) {
                 error_log($e);
                 $user = null;
               }
           }
           ・・・なんか色々書いてある。ここはいじらない。・・・
                                                                             14	


Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
お疲れ様でした!!




                                                                          15	


Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .

Api

  • 1.
    0からのプログラミング講座 Stage6 本⽂文書のいかなる部分をも、事前の許可なく複写したり転送したりすることはできません。 © Toshiyuki Tanaka & Jun Chiba 1
  • 2.
    ゴールイメージ l  Stage6のゴールイメージ メールを送信した時のように phpからFacebookのウォールに 投稿できること 2 Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
  • 3.
    API(1/3) l  API = Application Program Interface -  プログラムをより簡単に実装できるよう⽤用意された関数群 (ライブラリ)を利利⽤用するための仕組み 通常のプログラミング APIを使ったプログラミング ⼊入⼒力力値 ⼊入⼒力力値 もともと⽤用意されている 処理理 API ⾃自分で実装 →呼び出して利利⽤用するだけで   結果を得られる 出⼒力力値 出⼒力力値 -  あらかじめ、さまざまな処理理を⾏行行うAPIが⽤用意されていれ ば、プログラマはそれらを組み合せるだけで、⽬目的の処理理 結果をプログラムから得ることができます。 3 Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
  • 4.
    API(2/3) l  簡単にいうと・・・ -  GoogleやYahoo、Facebook、Twitterなどの既存の   システムの機能や、データベースにアクセスするための仕組み     あなたのプログラム この予定を Googleカレンダーに 登録しておいて Google  API あなたのプログラム #zeroprmっていう ハッシュタグがついた ツイートを20件ちょうだい Twitter  API 4 Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
  • 5.
    API(3/3) l  APIの種類 -  世の中にはサービスがAPIを公開しています。 -  Google、Yahoo、Facebook、Twitter、はてな   ホットペッパー、Amazon、じゃらん・・・ -  書ききれないのでここを参照! ü http://ma8.mashupaward.jp/apis?locale=ja l  APIを公開する理理由 -  マッシュアップによって⾃自社にはないコンテンツを   提供する為と、⾃自社サービスの利利⽤用を急速に拡⼤大する為   等の理理由があると思います。 例例:Twitter TwitterはTwitterクライアントというマッシュアップサービス によって使いやすくなり、多くの⼈人に利利⽤用されている。 5 Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
  • 6.
    Facebook API(1/8) l  Facebook APIを使う -  今回は数あるAPIの中からFacebookのAPIを利利⽤用してみた いと思います。 -  イメージとしてはFacebook社が管理理しているデータベー スに対して、プロフィール情報の取得や、つぶやき情報を 登録できるようになります。 -  ただし、Facebook社としては直接的にデータベースに命 令令を実⾏行行できるようにしてしまうと、全データを削除され る危険性もあるので、APIという仕組みを使って各種デー タにアクセスできるようにしています。 6 Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
  • 7.
    Facebook API(2/8) l  Facebook APIを使う -  まずはこのサイトからFacebook APIを利利⽤用するために Facebookが⽤用意してくれているファイルをダウンロード してみましょう。(Zipボタンでダウンロードできます) ü https://github.com/facebook/facebook-php-sdk ZIPを クリック 7 Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
  • 8.
    Facebook API(3/8) l  Facebook APIを使う -  ダウンロードしたZipファイルを解凍すると(ダブルク リックで解凍できます)、中にはexamplesやsrcといった フォルダが⼊入っていることが確認できると思います。 8 Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
  • 9.
    Facebook API(4/8) l  Facebook APIを使う -  examplesフォルダの中のexample.phpがサンプルプログラ ムとなります。サクラエディタまたはKeditで開いて中を ⾒見見てみましょう。 9 Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
  • 10.
    Facebook API(5/8) l  Facebook APIを使う -  example.phpのappId,secretを以下のように編集して保存 下さい。 ・・・なんか書いてある。ここはいじらない。・・・ require '../src/facebook.php'; //ここ数値は、このアプリのIDが334993866548043で、 //このアプリのパスワードが9a185006487e4f063059f26f2aa32859 //ということを意味しています。(アプリによって異なります) $facebook = new Facebook(array( 'appId' => '334993866548043', 'secret' => '9a185006487e4f063059f26f2aa32859', )); ・・・なんか色々書いてある。ここはいじらない。・・・ 10 Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
  • 11.
    補⾜足 requireの意味 l  別のファイルに書いてあることを呼び出す -  requireとは「要求する」という英単語の意味ですから、   その後に書かれたファイルを要求する、という意味になり ます。 -  つまり、下のケースの場合、このプログラムから facebook.phpに書いてあることを使うよ、という意味にな ります。 -  facebook.phpとは、Facebook社がFacebookアプリを開発 する⼈人向けに⽤用意してくれたファイルです。 -  ちなみに、 ../src/ とは、このファイルがあるフォルダの上 の階層(= ../)にあるsrcというフォルダの中にある、 facecook.phpを使うよ、という意味になります。 require '../src/facebook.php'; 11 Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
  • 12.
    Facebook API(6/8) l  Facebook APIを使う -  examplesとsrcフォルダをフォルダごとアップロードしま す。 12 Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
  • 13.
    Facebook API(7/8) l  Facebook APIを使う -  htmlやphpを実⾏行行する⼿手順で先ほどのexample.phpを実⾏行行 してみましょう。 examples/ をクリック example.php をクリック login  facebook あなたのプロフィール のリンクをクリック が表⽰示される 13 Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
  • 14.
    Facebook API(8/8) l  Facebook APIを使う -  facebookから⾃自分の基本データの情報を取得している。 ・・・なんか書いてある。ここはいじらない。・・・ if ($user) { try { //facebookのapiからme(=自分)の情報を取得しろ、の意味 //この1行で情報が取得できるのがapiの凄さ $user_profile = $facebook->api('/me'); } catch (FacebookApiException $e) { error_log($e); $user = null; } } ・・・なんか色々書いてある。ここはいじらない。・・・ 14 Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .
  • 15.
    お疲れ様でした!! 15 Copyright (c) 2012 Toshiyuki Tanaka & Jun Chiba All rights reserved .