Google FriendConnect APIã¨Facebook Connectã¨ãã夿 ãã¡
é ãã°ããªãããGoogle FriendConnect がAPI出しましたããGoogle FriendConnectæ¬ä½ãããã°ãã¼ãçã«ã¦ã§ãã«è²¼ä»ãããã®ã ã£ãã®ã§ãããç¨ã®ã¬ã¸ã§ããéçºãããããªã¨æã£ã¦ãã¤ããã¨ãééãã¾ããããããããããã¬ã¸ã§ããéçºè ã ãã®è©±ã§ã¯ãªãã§ãããã
æ©éãã¼ããããè¨äºãæ¸ãã¦ã¾ãã
ãµã¼ãã¹æä¾è ã«ã¨ã£ã¦ï¼ä»åå ¬éãããGFCã®èªè¨¼æ©æ§ã¯é åã§ããOpenIDã使ã£ã¦ããè¤éãªãµã¼ãã¼å®è£ ãå¿ è¦ã¨ããèªè¨¼ãï¼HTMLãã¡ã¤ã«ã¨JavaScriptã®è¨ç½®ã ãã§å®ç¾ã§ããã®ã§ããèªè¨¼æ©è½ãå®å ¨ã«å¤é¨ã«ããããã¨ã§ï¼Cookieã®ãã©ã¡ã¼ã¿ã§ãã°ã¤ã³ç¶æ ã夿ãï¼ããã«ãããèªå¯ã«ãç¨ãããã¨ã§ï¼ãµã¼ãã¹æä¾è ã¯éçºã®æéãåçã«æ¸ãããã¨ãã§ãã¾ãã
http://gihyo.jp/dev/column/01/social/2009/031801
ãããæããã°ãããã¨æãã¾ãããã¡ãããã¢ã¤ãã³ãã£ãã£ãã³ã³ã·ã¥ã¼ãå´ã§æ¤è¨¼ããå¿ è¦ããããªããæå¾ã«ãµã¼ãå´ã§åãåããããã®ã§ãå ¨ããµã¼ãè¦ãããã¨ããããã§ã¯ãªãã¨ãããã¾ãããåã«ã°ãªã¼ãã£ã³ã°ã¡ãã»ã¼ã¸ãã½ã¼ã·ã£ã«ã°ã©ãã表示ããããããªããã»ãã¨ã«ã³ããã§ã§ãããããã¼ã¿ã®æ¸ãè¾¼ã¿ã ã£ã¦ã§ããã
ãã¨ã¯ãOpenSocialã®APIãã»ã¼åãã¦ãããã¨ãããã¯ã¨ã¦ãé¢ç½ããOpenSocialã®JavaScript APIã£ã¦ãã¬ã¸ã§ããå ã§ãã使ããªãã£ã¦ããå°è±¡ããã£ãã¨æããã§ããããããã£ã¦å¤é¨ãµã¤ãã§ãç°¡åã«ä½¿ããããã«ãªããªããããããRESTful APIã使ã£ã¦ãµã¼ããµã¤ãä½ãå¿ è¦ã¯ãã¾ããªããªãããã¡ããæºå¸¯å¯¾å¿ã¨ãããªãæ¨ã¦ãé¨åã¯å¤ãã®ã§ãªããªã®ã§ãããã©ããããã§ãSNSå é¨ã«éé¢ãããããã¯å ¨ç¶ããããJSåºæã®ãã¼ã¿ããªãã£ãã©ã¤ããªéçºè ã«å³æ¹ããã«éãããã¾ããã
ã¨ã¾ããã£ã¨ã§ãAPIãªãã§ããããããã§ã«Facebook Connect ã§ã¯ä¸çªæåã«å®ç¾ãã¦ãããã¨ã ã£ãããã¾ããéã«Facebookã«ã¯ã¦ã£ã¸ããã®ãããªå³ç©çãªãã®ãç¡ãã£ã訳ã§ããããããæè¿åºãã¦ãã¦ããããã®ã§ãããããåªå 度ãã¢ããã¼ãã®éããã§ã¦ã¦é¢ç½ãã§ããã
ãã¦ãããã¾ã§ã¯å段ã§ãããããæ¬é¡ã
çµå±å½¼ãã®åºãã¦ãããµã¼ãã¹ã¯ãå ±ã«ã½ã¼ã·ã£ã«ã°ã©ãã®Webä¸çã¸ã®æµéãç®æãã¦ããã®ã§ãããããä»ã®Webã®ä¸çã§ã¯ã³ã¹ãããããªãæµéã®æå³ç¿¼ã¯JavaScriptã§ããæ°å¤ãã®åºåï¼ããã°ãã¼ããããã¦Google Mapsãæ®åã§ããã®ãããããJavaScriptã§ã§ãã¦ããããã ãã¨ãè¨ããã®ã§ã¯ãªããã¨æãã¾ããå®éããµã¼ããç¨æããã¨ãã³ããã ãã§å®éã«Webãã¼ã¸ãåãã®ã§ãããªãæ·å± ãä¸ãã£ã¦ããã¯ãã§ãããã®æå³ã§ããã®ï¼è ãåããJavaScriptã«ããAPIãåºãã¦ãããã¨ã¯ãçã«ããªã£ã¦ãã¾ãã
ãã ãä¸ã®ä¸ã§ãJavaScriptã«ããAPIãããã£ã¦ãããµã¼ãã¹ã£ã¦ããã¾ããªãã§ãããããªãã¨ãåç §ç³»ã®ã¿ï¼ã ãããã¯JSONPãã¼ã¹ï¼ã§ããããå°ãä»ã«ãã£ã¦ãããã¨æããã§ãããããããªããªãã§ã¦ããªãã®ã¯ãï¼æ¬å½ã«å¿ è¦ãªã®ï¼ã¨ãããã¸ãã¹çãªå¤æãããã¨ã¯æãã¾ããï¼ããããæè¡çãªåé¡ãå¤ããã£ãããã ã¨æã£ã¦ãã¾ãã
ã§ããã®ï¼ã¤ã®Connectã¯ãããå æãã¦ããã§ããããã®åé¡ã¨ã¯ä»¥ä¸ã®ï¼ã¤ã§ãã
- ãã©ã¦ã¶ä¸ã§ã®ã¯ãã¹ãã¡ã¤ã³ã³ãã¥ãã±ã¼ã·ã§ã³ãã©ãå®ç¾ããã
- ã¦ã¼ã¶ã«åæãããä»çµã¿ã¯ã©ãããã
- èªè¨¼ãã¼ã¯ã³ã®ããåãã¯ã©ãããã
1. ã«é¢ãã¦ã¯ããããããã©ã¦ã¶ã®ã»ãã¥ãªãã£å¶ç´ãå ã«ãªã£ã¦ããã®ã§ãããããã¯è¿å¹´ããããç ç©¶ããªããã¦ãã¾ãããJSONPã¯ãã£ã¨ãæ®åãããã©ã¦ã¶ã¯ãã¹ãã¡ã¤ã³éä¿¡ã¨è¨ãã¾ãããã©ã¼ã¸ãã¼ã¿ã®éä¿¡ï¼GETã®ã¿ã®ããURLé·ãåé¡ã«ãªãï¼ãèªè¨¼ãã¼ã¿ã®ããåãã«ã¯ä¸åãã§ããããã®å¾ãIFRAMEã«ãããã©ã°ã¡ã³ãèå¥åã«ããéä¿¡æ¹æ³ãããªãã¦ãã¦ãç¾å¨æ§ã ãªãµã¼ãã¹ï¼è£½åã§å®è£ ããã¦ãã¾ããGoogleãFacebookããã®æ¹æ³ï¼ãããã¯ãã®variantï¼ãæ¡ç¨ãã¦ãã¾ããä¸éçã«ã¯ãã¯ãã¾ã ããã¯ã®ä¸ç¨®ãã¨ãã¦è¦ããã¦ãããã¨ãå¤ããã®æ¹æ³ã§ãããã©ã¡ãã«ããæ³¨ç®ããªããã°ãªããªãã¨ããã§ã¯ãªããã¨æãã¾ãã
2. ã«ã¤ãã¦ã¯ããã©ã¤ãã·ã¼ã«é¢ãããããªãããªãã¯ã§ãªãæ å ±ãæµéãããããã«ã¯ããªããå¿ è¦ã«ãªããã®ã§ããããã¯ãæ¢ã«ã¢ã¤ãã³ãã£ãã£æ å ±ã絡ãã§ããWebãµã¼ãã¹ã®å®ç¾ã«ããã¦ããå©ç¨ããã¦ããã®ã§ãããã¼èªä½ã¯ç¹ã«é£ãããã®ã§ã¯ãªããããããªãã§ãããã3. ã§ä¸ãããã¼ã¯ã³ã®ããåãã¨çµ¡ãã§ããã©ã¦ã¶ã®ã¿ã§å®ç¾ããã®ã¯ããããç´°ããç¹ã§æ°ã使ãå¿ è¦ããã£ããã¾ãã
3. ã®èªè¨¼ãã¼ã¯ã³ã®ããåãã¯ãOAuthãªã©ã§ãããªãã¿ã§ããããã©ã¦ã¶ã®ã¿ã§å®çµã§ããããã«å·¥å¤«ããã¦ããã¾ããOAuthãªã©ã¯ç½²åæ¤è¨¼çã®ããã«ç§å¯éµãã³ã³ã·ã¥ã¼ãã使ãã¾ãããGoogle FriendConnectãFacebook Connectãã©ã¡ããã³ã³ã·ã¥ã¼ããWebãã©ã¦ã¶ã«ãªãã®ã§ãç§å¯éµãæããããã¨ãé£ããã§ãããã®ãããããå°ãè»½ãæ¹æ³ãä¾ãã°Googleã§ã¯ãCookieãã¼ã¹ã®ãã¼ã¯ã³ç®¡çæ¹æ³ã使ã£ã¦ãã¾ãããã ãã3rd Party Cookieã§ã¯ãªããèªåã®ãµã¤ãã®Cookieã¨ãã¦ãã¼ã¯ã³ãä¿åãããããCSRFã®å±éºæ§ãããã¾ãããèªåã®ãµã¤ãã®Cookieæ¼æ´©ãç¡ãã¨ããåæã«ããã¦ãã³ã³ã·ã¥ã¼ãã¨ãã¦æ£çæ§ãä¿è¨¼ããã¾ãã
ãã®ããã«ãç°¡åã«è¦ããAPIã®è£ã§ãå®ã¯ãããããããããããã¨ããã£ã¦ãããã¾ããããããã®æè¡è¦ç´ ã¯ãæ®éãªãã¡ããã£ã¨ã³ã¼ãæ¸ãã¦ããã°ã«ã¾ã¨ãã¦ããã¯ããæ°åã«ãªã£ã¦çµããããããé¢ã®å±±ã®éç®±ã®é ã«ãããããªãã®ã§ããããããã¾ã¨ãããã¦ãµã¼ãã¹ã¨ãã¦å ¬éãã¦APIã«ã¾ã§ãã¦ãã¾ãã¾ããããã¶ãããã«ãããã¾ã§ã«ã¯ããããããã©ããããã¨ããã£ãã«éããªããã§ãããã§ã«ããªãããã®ãç©ã¿ä¸ãã¦ããã®ãWebéçºã ã¨æã£ã¦ãã¨ã¡ãã£ã¨é¢é£ããã¾ãã
ã§ãããã®ä¸ç¨®å¤æ çãªåªåããã£ããããã§ãåãã¯å®ã£ãæå®ãç°¡åã«APIã¨ãã¦é£ã¹ããã¨ãã§ãã¦ãã½ã¼ã·ã£ã«Webãã¢ã¤ãã³ãã£ãã£Webãµã¼ãã¹ããã¾ãããã¹ã¦ã®Webãµã¤ãã§ä½ã³ã¹ãã«ä½¿ããããã«ãªã£ã¡ãã£ãããã訳ã§ãããããã§ããã