ã¯ããã«
ãFacebookã¯ç±³å½ã®ä»£è¡¨çãªã½ã¼ã·ã£ã«ãããã¯ã¼ã¯ãµã¼ãã¹ã§ãéçºè åãã®ãã©ãããã©ã¼ã ãç¨æããã¦ãã¾ããä»åã¯ãFacebookç¨ã®ã¢ããªã±ã¼ã·ã§ã³ã®ä½ãæ¹ã«ã¤ãã¦ç°¡åã«è§£èª¬ãã¾ãã
ãFacebookããã¯PHPã§æ¸ããããµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ãæä¾ããã¦ãã¾ãããä»åã¯Perlãå©ç¨ãããã¨æãã¾ãã
対象èªè
ãWebã¢ããªã±ã¼ã·ã§ã³ã«èå³ã®ããæ¹ã
å¿ è¦ãªç°å¢
ãPerl 5.8以ä¸ãåä½ããç°å¢ãæ¨å¥¨ãã¾ãã主ãªPerlã¢ã¸ã¥ã¼ã«ã«ã¯ã以ä¸ã使ç¨ãã¾ããã
Facebookç¨ã¢ããªã±ã¼ã·ã§ã³ä½æã®åºç¤
Facebook Developers
ãFacebook Developersã¨ãããFacebookã®éçºè åããã¼ã¸ãããã¾ããããã§ã¯ä¸»ã«3ã¤ã®æè¡ãæä¾ããã¦ãã¾ãã
- Interface (API)
- Query (FQL)
- Markup (FBML)
ãããããã®æè¡ã«ã¤ãã¦è§¦ãã¦ããããµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã®ä½æã«ææ¦ãã¾ãã
ã¢ã¼ããã¯ãã£
ãã¾ãã¯Facebookã®ã¢ã¼ããã¯ãã£ã«ã¤ãã¦èª¬æãã¾ããFacebook Developers Wikiã®ï¼»Random Questionsï¼½-ï¼»Basic Application Architectureï¼½ã«ãã¢ããªã±ã¼ã·ã§ã³ãFacebookå ã«è¨ç½®ããå ´åã®è¨è¿°ãããã¾ãã
ã以ä¸ã®ã·ã¼ã±ã³ã¹å³ãåç §ãã¦ããã ãã¨ãã®æ§æãç解ã§ãããã¨æãã¾ãã


API
ãFacebookã¯è±å¯ãªAPIãæä¾ãã¦ãã¾ãã詳細ã¯Wikiã®ãAPIããã¼ã¸ãåç §ãã¦ãã ããã
ãRESTã¤ã³ã¿ã¼ãã§ã¤ã¹ã§ãFlickr APIã®ãããªãåé¡.åä½
ãã®å½¢å¼ã§ã¡ã½ããåãå®ç¾©ããã¦ãã¾ãï¼ä¾ãã°ãï¼»users.getInfoï¼½ãªã©ï¼ã
ãAPIã®å¼ã³åºãã¯ãFacebookã«ãã°ã¤ã³ããç¶æ
ã§å©ç¨ãããã¨ãåæã«ä½ããã¦ããããã§ãã®ã§ãapi_key
ï¼å¼ã³åºãã¢ããªã±ã¼ã·ã§ã³ã«ä»ä¸ããããã¼ï¼ãsession_key
ï¼ãã°ã¤ã³ã¦ã¼ã¶ã¼ã®ã»ãã·ã§ã³ãã¼ï¼ãsig
ï¼ç§å¯ãã¼ãå©ç¨ããMD5ã®ããã·ã¥å¤ï¼ãv
ï¼ãã¼ã¸ã§ã³ï¼ããªã¯ã¨ã¹ãã®ãã©ã¡ã¼ã¿ã«å¿
ãå«ã¾ãã¾ãï¼ãã®è¾ºãã¯Net::Facebook::API
ãªã©ã®APIã©ããã¼ã¢ã¸ã¥ã¼ã«ãå®è£
ãé è½ãã¦ãããã®ã§ãå¿
è¦æå°éã®è¨å®ã§æ¸ãã¨æãã¾ãï¼ã
ãAPIã®æ»ãå¤ã¯ãXMLãJSONã®ããããã®å½¢å¼ã§åå¾ãããã¨ãå¯è½ã§ãï¼ããã©ã«ãã¯XMLï¼ããªã¯ã¨ã¹ãã®ãã©ã¡ã¼ã¿ã«format=JSON
ãæå®ãããã¨ã§JSONå½¢å¼ã§åå¾ã§ãã¾ãã
ãè±å¯ãªAPI群ã使ãããªãã®ã«ãä¸ã¤ä¸ã¤APIã®å®è£ ã試ãã¦ããã®ã¯å°ãåå«ã§ãããããFacebookã¯API Test Consoleã¨ãã便å©ãªãã¼ã«ãç¨æãã¦ããã¾ããããã®ãã¼ã«ã§ã¯ããã©ã¼ã ããå ¥åãããã©ã¡ã¼ã¿ã«ãã£ã¦ãã©ã®ãããªã¬ã¹ãã³ã¹ãå¾ããããã確èªã§ãã¾ããã³ã¼ããæ¸ãåã«ä¸åº¦è©¦ãã¦ã¿ã¾ããããå ã«ã©ããªã¬ã¹ãã³ã¹ãå¾ããããç¥ããã¨ã¯å®è£ ã®æå©ãã«ãªãã¾ããã

FQL
ãFQLã¯ãFacebook Query Languageãã®ç¥ã§ãSQLã©ã¤ã¯ãªè¨æ³ã§Facebookãããã¼ã¿ãåå¾ãããã¨ãã§ãã¾ããåºæ¬çã«ã¯ä¸è¿°ããAPIã¨åããã¼ã¿ãåå¾ã§ãã¾ãã
ãWikiã®ãFQLããã¼ã¸ä¸æ®µã«ãããThe dataãã®é ã«ããã¼ãã«åã¨ã«ã©ã åã«é¢é£ããAPIã®è¡¨ãè¨è¼ããã¦ãã¾ãã
ãä¾ãã°ãAPIã®users.getInfo
ãå©ç¨ããã®ã¨åæ§ã«FQLã§å¤ãåå¾ãããå ´åã¯ã次ã®ãããªFQLãçºè¡ãã¾ãã
SELECT name FROM user WHERE uid=12345
ãå©ç¨å¯è½ãªã¹ãã¼ãã¡ã³ãã¯ãSELECTãFROMãWHEREãINã®4ã¤ã®ããã§ããã¾ãWHEREå¥ã§ã¯ANDãORãNOTãå©ç¨ã§ããããã§ãããã®ä»ããã¤ãã®é¢æ°ãç¨æããã¦ãã¾ãï¼é¢æ°ã«ã¤ãã¦ã¯ãFQLãã®ãã¼ã¸ã®ãFunctions and Operationsããåèã«ãã¦ãã ããï¼ã
ãFQLã®å¼ã³åºãã¯APIã®fql.query
ã使ãã¾ããPerlã§å¼ã³åºãå ´åã¯æ¬¡ã®ããã«ãªãã¾ãã
my $client = Net::Facebook::API->new( api_key => 'xxxxxxxxxxxxxx', secret => 'xxxxxxxxxxxxxx', app_path => 'http://apps.facebook.com/yourapp', ); my $response = $client->fql->query( "SELECT name FROM user WHERE uid='123456'");
ãFQLãAPIå¼ã³åºãã§å©ç¨ãã¾ãã®ã§ãä¸è¿°ããAPI Test Consoleã使ããã¨ãã§ãã¾ããAPI Test Consoleã®ãã¼ã¸ã«è¡ããMethodã®ãã«ãã¦ã³ã¡ãã¥ã¼ããï¼»fql.queryï¼½ãé¸ãã§ãã ãããé¸æããã¨queryã¨ããå ¥åãã©ã¼ã ãç¾ãã¾ãã®ã§ãããã«FQLãå ¥åãã¦ãã ããã

FBML
ãFBMLã¯HTMLã®ãµãã»ããã¨ãã¦å®ç¾©ããã¦ãã¾ãï¼HTMLã®ããã¤ãã®ã¿ã°ã¯å©ç¨ã§ãã¾ããï¼ãã¾ããHTMLã®ã»ãã«Facebookã«ç¹åãããfbãã¨ããåå空éã®ã¿ã°ãå®ç¾©ããã¦ãããCanvasã«æç»ããéã«å½¹ç«ã¡ã¾ããã»ãã¥ã¢ãªç°å¢ãæèãã¦ã®ãã¨ã¨æãã¾ãããHTMLã®script
ã¿ã°ã¯å©ç¨ã§ãã¾ãããããããJavaScriptã使ãããã¦ã¼ã¶ã¼ã®ããã«FBJSã¨ããFacebookç¨ã®JavaScriptãç¨æããã¦ãã¾ãã
ãç¹ã«fbã®åå空éãä»ããFBML
ã¿ã°ã¯é常ã«ä¾¿å©ã§ããå®éã«è¦ãæ¹ãåãããããã¨æãã¾ãã®ã§fb:name
ã®ä¾ãè¦ã¦ã¿ã¾ãããã
<fb:name uid="4">
ãã¨è¨è¿°ããå ´åã以ä¸ã®HTMLãåå¾ãããã¨ãã§ãã¾ããAPIãé§ä½¿ããã°ãã®HTMLãçæãããã¨ãã§ããã¨æãã¾ãããããã¾ã§è¦å´ããªãã¦ãFBMLã§æ¥½ã«å®è£ ãããã¨ãã§ãã¾ãã
<a href="http://www.facebook.com/s.php?k=100000080&id=4" onclick="(new Image()).src = '/ajax/ct.php?878645&app_id=2353941073&action_type=3&post_form_id=c8018cd30000211bddf82b49f8cc762f';return true;">Mark Zuckerberg</a>
ãFBMLç¨ã«ãAPIã¨åæ§ã«ãã¹ãç¨ã®ãã¼ã«ãç¨æããã¦ãã¾ããFBML Test Consoleã§ããä»»æã®ã¿ã°ãå ¥åããå¾ãï¼»Previewï¼½ãã¿ã³ãæ¼ããã¨ã§ãã¬ãã¥ã¼ã¨HTMLã³ã¼ããè¦ããã¨ãã§ãã¾ãããã®ä½æ¥ããã³ã¼ããæ¸ãåã«ä¸åº¦è¡ã£ã¦ããã¨ããã§ãããã
