ã¯ã¦ãªèªè¨¼API / ãããã«ä½ã£ã¦ã¿ã¾ãã
ã¯ã¦ãªèªè¨¼APIãå ¬éããã¾ããã®ã§ããããã¦ã¿ã¾ããã
æ¸å¿µäºé
ãªããããã¨ããçµç±ã§ã¯ã¦ãªèªè¨¼APIã®å ¬éã«ã¤ãã¦(éçºè ãã¾åã)ãèªãã§æãããã¨ã
- ããããããã«ãã¯ã¦ãªèªè¨¼APIã§ââãä½ã£ã¦ã¿ã¾ãããçãªãã®ãç»å ´ããã§ãããããããããã¢ããªãç»å ´ãããã¨ãæå¾ ã
- ãã ããä¸è¬ã¦ã¼ã¶ã«ãã¡ãã¨èªèãããªãã¨ãæªæã®ãã第ä¸è ãä¸è¬ã¦ã¼ã¶ã®ãã¹ã¯ã¼ãã奪ãã¢ããªãä½ã£ã¦ãã¾ãå±éºæ§ãããã¾ãããã¨ãã°ãã¯ã¦ãªèªè¨¼APIãå©ç¨ãã¦ãã¾ããã¨å½ã£ã¦ãããã°ã¤ã³åã¨ãã¹ã¯ã¼ããå ¥åããããã©ã¼ã ããè¦ããã¢ããªãåºãå ´åãã¦ã¼ã¶ã¯èª¤è§£ããªããã
- ããããâ¦è§£èª¬ããå³ãã»ããã§ããâèªè¨¼é¨åã®ã·ã¼ã±ã³ã¹å³ã¯çµåãæãã¾ãã(ãã®ã¨ã³ããªã®ä¸ã®æ¹ã§å ¬éãã¦ãã¾ã)ã
çµåããã¡ã®ã¯ã¦ãªèªè¨¼APIãã¹ã
追è¨ï¼2006-04-24 21:09: ã¨ãããããä½ã£ã¦ã¿ã¾ããã以ä¸ãã試ããã ãã(ã½ã¼ã¹ã¯ããä¸ã§å ¬é)âª
ããã¯ãã¯ã¦ãªèªè¨¼ãµã¼ãããè¿ãããæååããã®ã¾ã¾è¡¨ç¤ºããã ãã®ã¢ããªã§ããid:hyukiã¨id:rubycoããã§ãã¾ããããã¨ã試ãã¾ããã
追è¨ï¼2006-04-24 21:49: catfrogããã¸ï¼ä¸ã®ãçµåããã¡ã®ã¯ã¦ãªèªè¨¼APIãã¹ããã試ãã¦ã¿ãã¨ããã«ã¢ããªã®ã¤ã¡ã¼ã¸ã¯æµ®ãã¶ã¨æãã¾ãããã£ã¨ãåç´ãªã®ã¯æ²ç¤ºæ¿ã¢ããªã§ãã¯ã¦ãªã¦ã¼ã¶ã¨ãã¦èªè¨¼ããã人ã ãã¯ãååã®é¨åããã®äººã®ã¯ã¦ãªãã¤ã¢ãªã¼ã«ãªã³ã¯ããã¦ãããã¨ãããããªãã®ããã¨ãã°ã¯ã¦ãªãã¤ã¢ãªã¼ã®ã³ã¡ã³ãæ¬ãã¾ãã«ãããªã£ã¦ã¾ãããã
追è¨ï¼2006-04-24 21:59: ä¸åº¦ãçµåããã¡ã®ã¯ã¦ãªèªè¨¼APIãã¹ããç¨ã«è¨±å¯ããã¨ãã¯ã¦ãªã®ã·ã¹ãã ãè¦ããã¿ããã§ãããããä¸åº¦æ°ããªæ°æã¡ã§ãã£ã¦ã¿ããã¨ãã«ã¯ãã¯ã¦ãªèªè¨¼APIã®ã¨ããã§è¨±å¯ãåãæ¶ãå¿
è¦ãããããã§ãããªãã»ã©ã
追è¨ï¼2006-04-24 22:04: r_iizukaããã¸ï¼URLãã¯ãªãã¯ããã¨ãã«ã¯èª¬æç¨ã®ãã¼ã¸ã«ã¸ã£ã³ããããã¹ãã§ãããå®è£
次第ã¨ããããããçµåãå
¥åããURLãééãã¦ããã ãã§ã(^_^; ç¾å¨ã¯ç´ãã¦ããã¾ãã
追è¨ï¼2006-04-24 22:07: å®è£
ãã¦ã¿ã¦æ°ã«ãªã£ãç¹ãèªè¨¼APIã§ã®ã説ææãç¨æããURLãã¨ãèªè¨¼ã®ã³ã¼ã«ããã¯URLããç¡é¢ä¿ã§ãããã¨ããã®ã¯ã¾ããã®ã§ã¯ãªãããã¨ããã®ã¯ãã¦ã¼ã¶ãã許å¯ãä¸ãããã¨ãããã¿ã³ãæ¼ãã¨ãã«è¦ãã¦ããã®ã¯èª¬ææã®URLã ãã ããã
ã¯ã¦ãªèªè¨¼APIã®URLã®ä½ãæ¹(make_api_sig.pl)
ç§å¯éµã¨api_keyãå ¥æãã¦ããapi_sigãä½ãã«ã¯ã以ä¸ã®Perlã¹ã¯ãªãã(make_api_sig.pl)ã使ãã¾ãã$secretã«ããªãã®ç§å¯éµã$api_keyã«ããªãã®api_keyãå ¥ãããã¼ã«ã«ã«åããã¾ãã
use strict; use Digest::MD5 qw(md5_hex); my $secret = "0123456789abcdef"; my $api_key = "abcdef0123456789abcdef0123456789"; my $api_sig = md5_hex("${secret}api_key${api_key}"); print "secret = $secret\n"; print "api_key = $api_key\n"; print "api_sig = $api_sig\n"; print "URL = http://auth.hatena.ne.jp/auth?api_key=${api_key}&api_sig=${api_sig}\n";
çµåããã¡ã®ã¯ã¦ãªèªè¨¼APIãã¹ãã®ã½ã¼ã¹(test.cgi)
追è¨ï¼2006-04-24 23:27: CGIã®ã½ã¼ã¹(test.cgi)ãå ¬éãã¾ãã$secretã¯ããªãã®ç§å¯éµã$api_keyã¯ããªãã®api_keyã$help_urlã¯èª¬ææã®URLã§ãã
#!/usr/bin/perl use strict; use CGI; use CGI::Carp qw(fatalsToBrowser); use Digest::MD5 qw(md5_hex); use LWP::Simple; my $q = new CGI; my $cert = $q->param("cert"); my $secret = "0123456789abcdef"; my $api_key = "abcdef0123456789abcdef0123456789"; my $api_sig = md5_hex("${secret}api_key${api_key}cert${cert}"); my $help_url = "http://www.example.com/about_your_application.html"; unless ($cert) { print "Location: $help_url\n\n"; exit; } my $content = get("http://auth.hatena.ne.jp/api/auth.json/?api_key=${api_key}&cert=${cert}&api_sig=${api_sig}"); print $q->header, $q->start_html('Hatena Auth API Test'), $q->start_pre, $content, $q->end_pre, $q->end_html;
ã¯ã¦ãªèªè¨¼APIã·ã¼ã±ã³ã¹å³(æ¦ç¥)
追è¨ï¼2006-04-25 06:15: ã·ã¼ã±ã³ã¹å³ãæãã¾ãã(æ¦ç¥ã®ã¿)ã
- (1) ã¦ã¼ã¶Aã¯ããµã¼ãã¹Xã«ãå©ç¨ããããã¨ããã
- ãã¨ãã°ãµã¼ãã¹Xã®ã©ããã®ãã¼ã¸ã«ã¢ã¯ã»ã¹ãããã¨ãæå³ãã¾ãã
- (2) ãµã¼ãã¹Xã¯ãã¦ã¼ã¶Aã«ãapi_keyã¨api_sig1ãã渡ãã
- ãã¨ãã°ã¦ã¼ã¶Aã«ãªã³ã¯ã¨ããå½¢ã§ç¤ºãã¾ãã
- 便å®ä¸ãapi_sigãapi_sig1ã¨api_sig2ã«åãã¾ããã両è ã¯éãå¤ã«ãªãã¾ãã
- api_sig1ã¯åãã£ã¦è¨ç®ãã¦ããã¾ã(ãã¨ãã°ä¸ã§å ¬éãã¦ããmake_api_sig.plã使ã)ã
- ç§å¯éµã使ãã®ã§ãapi_keyããapi_sig1ãä½ãã®ã¯ãµã¼ãã¹Xã¨ãã¯ã¦ãªãããã§ãã¾ããã
- (3) ã¦ã¼ã¶Aã¯ãã¯ã¦ãªã«ãid+password+api_key+api_sig1ãã渡ãã
- é常ã¯ã¦ã¼ã¶Aããã©ã¦ã¶ã§ã¢ã¯ã»ã¹ãããã¨ã«ãã£ã¦æ¸¡ãã¾ãã
- (4) ã¯ã¦ãªã¯ãã¦ã¼ã¶Aã«ãcertãã渡ãã
- å®éã«ã¯(4)ã¨(5)ã¯èªåçã«ãªãã¤ã¬ã¯ãããã¾ãã®ã§ãã¦ã¼ã¶Aã¯æèãã¾ããã
- (5) ã¦ã¼ã¶Aã¯ããµã¼ãã¹Xã«ãcertãã渡ãã
- ããã§ã¢ã¯ã»ã¹ããã®ãã³ã¼ã«ããã¯URLã§ãã
- ãµã¼ãã¹Xã¯certã¯ç¥ãå¾ãããcertããpasswordãéç®ãããã¨ã¯ã§ãã¾ããï¼ãã®ããã«ãªã£ã¦ããªããã°ãªãã¾ããï¼ã
- (6) ãµã¼ãã¹Xã¯ãã¯ã¦ãªã«ãapi_key+cert+api_sig2ãã渡ãã
- (7) ã¯ã¦ãªã¯ããµã¼ãã¹Xã«èªè¨¼çµæã¨ã¢ã¤ã³ã³æ å ±ãªã©ã渡ã(OKãªã)ã
- (8) ãµã¼ãã¹Xã¯ãèªè¨¼å¾ã®ç»é¢ãã¦ã¼ã¶Aã«æ示ããã
â»ãããã£ã¦ã¿ãã¨ãæ¹ãã¦ä¸æ¹åããã·ã¥é¢æ°ï¼ã¡ãã»ã¼ã¸ãã¤ã¸ã§ã¹ãï¼ã®éè¦æ§ããããããã¾ããã
â»ä¸è¨ã®api_sig1ãapi_sig2ã®ä½æã§ã¯ç§å¯éµãæ··ãè¾¼ãã§ã¡ãã»ã¼ã¸ãã¤ã¸ã§ã¹ã(MD5)ãå©ç¨ãã¦ããã®ã§ãã¡ãã»ã¼ã¸èªè¨¼ã³ã¼ãã®ä¸ç¨®ãä½ã£ã¦ãããã¨ã«ãªããä¸æ¹åããã·ã¥é¢æ°ï¼ã¡ãã»ã¼ã¸ãã¤ã¸ã§ã¹ãï¼ãã¡ãã»ã¼ã¸èªè¨¼ã³ã¼ãã«ã¤ãã¦ã¯ãæå·æè¡å
¥é ââ ç§å¯ã®å½ã®ã¢ãªã¹ããããããããã§ãããã¨èªèã®å®£ä¼:-)ã