OAuthãå©çšããŠç»åãæçš¿ãããã£ãã®ã§ããŸãã¯ç»åæçš¿ã§ããããªãµãŒãã¹ãæ¢ãããšã«ããã
ããã¯èšã£ãŠããã²ãšã€ã²ãšã€èª¿æ»ããŠãã倧å€ãªã®ã§ãTwitterã§ã€ã¶ãããŠã¿ããããããããããšã«ã¢ããã€ã¹ããã ããŸããã
è²ã
ãšã¢ããã€ã¹ããã ãããã ãã©ãéèŠãªã®ã¯ä»¥äžã®2ã€ã
- TweetPhotoãããã
- èªèšŒã¯OAuth Echoã䜿ãã®ããããã
æ©éãOAuth Echoãå©çšããTweetPhotoãžç»åãæçš¿ããããšæã£ããã»ã»ã»åºæ¥ãªãïŒ
çµæããèšããšãTweetPhotoãžã®æçš¿ã¯æªã ã«åºæ¥ãŠç¡ããŠãTwitpicãžã®æçš¿ã¯åºæ¥ããšããç¶æ
ã
ãŸãã¯ãOAuth Echoã®æé ã倧éæèª¬æãããšãããªæãã
- OAuthã®çœ²åãäœæ
- 眲åããããã«ä»ããŠç»åãæçš¿
TweetPhotoãžæçš¿ããåã«TwitterãžæããŠãAccessToken(OAuth Token)ãããããã眲åã¯ééããªãã ãããšããããšã§ããããã確èªãããã¯åé¡ãªãåºæ¥ããã§ã¯ãç¶ããŠç»åãæçš¿ã»ã»ã»åºæ¥ãªãã
ãšã©ãŒã®å
容ã芪åã§ã¯ãªããããããããªãã
http://groups.google.com/group/tweetphoto/web/upload-v2-0-api ãèŠãéãã§ã¯ãèªèšŒæ
å ±ãšãã®ä»ããããŒãšç»åãéãã°ããã®ããªïŒãšæã£ãŠããã®ã ããšã©ãŒã ãããããã®ãšã©ãŒãäžèŠªåã§ãåå ã远ãã«ã圹ç«ããããã®åŸãè²ã
ãšèª¿ã¹ãŠã¿ãããTweetPhotoã®æ
å ±ãå°ãªããTwitpicã®æ
å ±ãå€ãããšã«æ°ä»ãã ããã§ãTwitpicã詊ããŠã¿ãŠãç»åã®æçš¿ãåºæ¥ãã°èªèšŒãåºæ¥ãŠããããšã ããå°ãã¯åãåãã«åœ¹ç«ã¡ããã ã£ãã®ã§ãæ¥éœTwitpicã«å€æŽã
å®éãTwitpicã®æ¹ãAPIã®æ
å ±ãæŽçãããŠãŠããããããïŒ
Twitpicã®APIæ
å ±: http://dev.twitpic.com/docs/2/upload/
TweetPhotoã®APIæ
å ±: http://groups.google.com/group/tweetphoto/web/upload-v2-0-api
ããããããã®google groupã®APIæ
å ±ã¯ãªãã£ã·ã£ã«ãªã®ãïŒã£ãŠè©±ã¯ãããã®ã®ãäžçªæåããã«èŠããã
APIãæŽçãããŠãã£ãŠå€§äºããã»ã»ã»ãšæ¹ããŠå®æ(ãããŠã軜ãTweetPhotoãžç念)ã
ã§ã¯ãTwitpicãžæçš¿ã»ã»ã»åºæ¥ãªãïŒïŒ
ãã£ã¹ãã¬ã€ã«ç©Žãéãããããªããã£ãŠãããããµã³ãã«ã³ãŒã(Java, PHPãªã©)ãèŠæ¯ã¹ãŠã眲åã®éãã¯ãªãããã眲åã§ãªããšãããšãã©ã¡ãŒã¿ãçããã ãã©ããã©ã¡ãŒã¿ã¯ã·ã³ãã«ã§ééããªãããã
æ©ã¿ç²ããã®ã§é¢šåã«ã§ãå
¥ããã»ã»ã»ãšåžãç«ã£ãç¬éã«ãµãšæãåœããããšãã²ãšã€æãæµ®ããã ã
ããã verify_credentials ã®æ¡åŒµå(çš®é¡)ã
XMLã®æ¹ãæ±ããããã£ãã®ã§ https://api.twitter.com/1/account/verify_credentials.xml ãå©çšããŠããã®ã ããããèšãã°ããµã³ãã«ã³ãŒãã§ã¯jsonããèŠãªãã£ããªã»ã»ã»ãšã
ãã®å Žã§æ¡åŒµåã ããxmlããjsonã«å€ããããšã©ãŒå
容ãå€ãã£ãïŒ
ä»ãŸã§ã¯Twitterã®èªèšŒã§åŒŸãããŠã颚ã ã£ãã®ããkeyãç¡ããšèšãããããã«ãªã£ãïŒ
keyæ
å ±ããªãã£ãã®ã¯x-www-form-urlencodedã§éã£ãŠããããã§ãmultipart-formdataã«å€ãããç¡äºã«æçš¿ã§ããŸããâª
å®éã¯ãGAE/Jã®URLFetchã§multipartã§éãæ¹æ³ããªãããã ã£ãã®ã§ä»æ¹ãªãæžããã®ã§ãäžæéããã£ãŠãã
ååºŠãæ¡åŒµåãjsonããxmlã«æ»ããŠããã£ã±ããšã©ãŒã§ããã
http://twitterapi.pbworks.com/Twitter-REST-API-Method%3A-account%C2%A0verify_credentialsâãã¡ãã¯xml, json䞡察å¿ãšæžããŠããã
http://dev.twitter.com/pages/oauth_echoâãã¡ãã¯jsonããæžããŠãªãã ãšããããšã¯ãOAuthã®æã¯xml, json䞡察å¿ã§ãOAuth Echoã®å Žåã¯jsonãã察å¿ããŠãªãã£ãŠããšïŒ
ç¡äºã«Twitpicæçš¿ãåºæ¥ãã®ã§ãç¶ããŠTwitter4jã䜿ã£ãŠTwitterãžtweetãã»ã»ã»ãšæã£ãããä»åºŠã¯ãã¡ãããšã©ãŒçºçã
java.lang.NoSuchMethodError: org.apache.log4j.Logger.infoãåºãããjava.lang.NoClassDefFoundError: Could not initialize class twitter4j.http.OAuthAuthorizationãåºããã
Twitpicããããåã¯tweetåºæ¥ãã確èªããŠãããã ãã©ããã®åŸãGAEã®ããŒãžã§ã³ã1.3.4ãã1.3.5ã«å€ããããæç¢ºãªåå äžæã
䜿ã£ãŠããã®ã¯statuses/updateã ãã ã£ãã®ã§ãããã ãæžããŸãããOAuth Echoã®å®è£
ããã£ãã®ã§ãæ±çšçã«ä¿®æ£ããŠå®äºã
ãªããšãæè»œOAuthã
ãŸã Twitpicãžã®æçš¿ã§æååãããŠãããTweetPhotoãžã®æçš¿ã¯åºæ¥ãŠãªããã©ãã¢ããã€ã¹ãããã ãããããã§æ¹åæ§ãå®ãŸã£ãŠããã£ãã
æåŸã«ç°¡åã«ãŸãšãã
- APIã¯ããããããæç¢ºã«ã
- OAuth Echoã¯jsonãã察å¿ããŠãªãããã ãã