oAuth2.0ã¯Googleã®ãµã¼ãã¹ã§ããanalysis,Adsense,Blogger,Youtubeãªã©ã®
æ å ±ãAPIçµç±ã§åå¾ããéã«å©ç¨ãã§ãã¾ã。
oAuth2.0ã®èªè¨¼ãã¼ã¯ã³ãåå¾ããé¨åãä¸å¿ã«è¨è¼ãããã¾ã。
ãã®å¾、ãµã³ãã«ã³ã¼ããé 次ä½ã£ã¦ããäºå®(ãã¶ã・・・
ã§ã¯、oAuth2.0ã«ã¯ä¸»ã ã£ã¦ï¼ç¨®é¡ã®èªè¨¼ã®æ¹æ³ãããã¾ã。
- Web Applicationã«çµã¿è¾¼ã
- ã¯ã©ã¤ã¢ã³ãã¢ããªã«çµã¿è¾¼ã
- Android・iOSã®ã¢ããªã«çµã¿è¾¼ã
ä»åã¯「ã¯ã©ã¤ã¢ã³ãã¢ããªã«çµã¿è¾¼ã」ãä¸å¿ã«è¨è¼ãã¦ãã¾ã。
ãã®「ã¯ã©ã¤ã¢ã³ãã¢ããªã«çµã¿è¾¼ã」ã¯ãããå¦çã«ãå©ç¨ã§ããã®ã§å¤§å¤ä¾¿å©ãã¨
æãã¾ã。Googleã®ããã¥ã¡ã³ãã§ã¯、「urn:ietf:wg:oauth:2.0:oob」ãã¡ãã«ãªãã¾ã。
ç®æ¨ã¯、「ã¢ã¯ã»ã¹ãã¼ã¯ã³」ã®åå¾ã«ãªãã¾ã。
ã§ã¯、以ä¸ã®ã¹ãããã§è¨è¼ãã¦ããã¾ã。
- Google Consoleã«ããã¸ã§ã¯ããä½æãã
- APIã¢ã¯ã»ã¹ãæå¹åãã
- oAuth2.0ã®èªè¨¼æ å ±ãä½æãã
- ä¸æã³ã¼ã(以ä¸code)ãåå¾ãã
- codeãå©ç¨ãã¢ã¯ã»ã¹ãã¼ã¯ã³ãåå¾ãã
- ãªãã¬ãã·ã¥ãã¼ã¯ã³ããã¢ã¯ã»ã¹ãã¼ã¯ã³ãåå¾ãã
Google Consoleã«ããã¸ã§ã¯ããä½æãã
ã¨ãããããã¡ã(Google Console)ã«ã¢ã¯ã»ã¹ãè¡ãã¾ããã。ä»ã¾ã§ããã¸ã§ã¯ããä½æãããã¨ããªããã°、å³ï¼ã®ãããªç»é¢ã«ãªãããããæé ã¯è¨è¼ãããã¾ã。
ãã§ã«ãåç¥ã®æ¹ã¯、次ã®ã¹ãããããã©ãã
å³1.ããã¸ã§ã¯ãæ°è¦ä½æ
å³2.å©ç¨è¦ç´ã®åæ
ããã§åæããã¸ã§ã¯ãã¯ä½æå®äºå称ãAPI Projectã«ãªã£ã¦ããããå¤æ´ã
å¿ è¦ãããã°、ç»é¢ä¸ã®「API Project」ãé¸æã、ãã§ãã¯ããã¯ã¹ã«ãã§ãã¯ãå ¥ã「rename」ã§å¯¾å¿ã§ãã
APIã¢ã¯ã»ã¹ãæå¹åãã
å©ç¨ãããAPIãæå¹åããã ãã§ãã、注æç¹ãããã¾ã。APIã«ãã£ã¦ã¯、Googleå´ã«æ¿èªãå¾ãªãã¨åä½ããªãAPIãããã¾ã。
ã¨ããããç»é¢ã«ç§»å「APIs & auth」⇒「APIs」ã§ä¸è¦§ã«ç§»åã§ãã¾ã。
YouTube Data API v3ã®å ´åã¯èªè¨¼ãå¿ è¦ãªãAPIã®ä¸ã¤ã§ã
ãã¡ãã®å ´åã¯、å³3ã®ããã«ç»é²ããã¨å©ç¨ã§ãã¾ã。
å³3.YouTube Data API v3ã®æå¹ä½æ¥ç»é¢
ã§ã¯、Googleå´ã«æ¿èªä½æ¥ãå¿ è¦ãªå ´åã¯ä»¥ä¸ã®ããã«ãªãã¾ã。
Blogger API v3ã§ããã°ä»¥ä¸ã®å³4ã®ç»é¢ã¨ãªãã¾ã。
å³4.Blogger API v3ã®æ¿èªç»é¢
åç»é¢ã§å¿ é ãç°ãªãã®ã§ã注æãã ãã。
ãã®ä»ã«ã¯、AdSense Host APIãªã©ãèªè¨¼ãå¿ è¦ã§ã。
oAuth2.0ã®èªè¨¼æ å ±ãä½æãã
ã§ã¯、æ¬é¡ã®èªè¨¼æ å ±ãä½æãã¾ãããã¨ã¯è¨ã£ã¦ãæé ã¯ç°¡åã§ã。「APIs & auth」⇒「credentials」ã«è¡ãå³5ã®ç»é¢ã«ããããã«
「CREATE NEW CLIENT ID」ãé¸æãã¾ã。
å³5.oAuth2.0ã®èªè¨¼æ å ±ä½æ
ãã¿ã³ãæ¼ãããå³6ã®ç»é¢ã表示ããã¾ãã
ä»åã¯、ã¯ã©ã¤ã¢ã³ãã¢ããªçã§åããã®ãç®çãªã®ã§
çãä¸ã®「Service account」ãæå®ãã¾ã
å³6.oAuth2.0èªè¨¼ã®å¯¾è±¡ãæå®
「Create Client ID」ãæ¼ãã¨.p12ã®æ¡å¼µåãã®ãDLã§ãã¾ã。
ãã¡ãã¯ã¢ããªã«çµã¿è¾¼ã¿å©ç¨ãããã¨ãããã¾ããä»åã¯
å©ç¨ããªãã®ã§ã¹ã«ã¼ãã¾ã。
å³7.èªè¨¼å¾ã®ç»å
ç»é²ãå®äºããã¨å³7ã®ããã«oAuth2.0ã«å¿ è¦ãª
「Client ID」「Email address」「Public key fingerprints」
ã®ï¼ã¤ãåºã¦ãã¾ã。(ãã¡ãä»äººã«æ¼ãããªãããã«)ããã§æºåå®äºã§ã。
ä¸æã³ã¼ã(以ä¸code)ãåå¾ãã
ããããã¯、ããããã¢ã¯ã»ã¹ãã¼ã¯ã³ãåå¾ããããã«æºåãã¾ã。ã§ã¯æ¹ãã¦è©³ç´°ãªæ¹æ³ãè¨è¼ãã¾ã。
ã¢ã¯ã¿ã¼ã¯、äºäººãã¾ã。APIãã¤ãªãå´、ã¨APIã«æä½ãããå´ã§ã
ããããGoogleã®ã¢ã«ã¦ã³ãã§ã。ããã§ã¯、åè ãã¢ã«ã¦ã³ãï¼、å¾è ãã¢ã«ã¦ã³ãï¼ã¨å¼ã³ã¾ã。
便å®ä¸åãã¦ãã¾ãã、åæã¢ã«ã¦ã³ãã¢ã«ã¦ã³ãï¼ã ãã§ãåæ§ã®å¦çãå¿ è¦ã§ã。
以ä¸ã®æé ã«ãªãã¾ã。
- oAuth2.0ã§ã¢ã¯ã»ã¹ãããç¸æã«codeä½æç¨ã®URLãéç¥ãã【ã¢ã«ã¦ã³ãï¼ä½æ¥】
- ã¢ã«ã¦ã³ãï¼ããå±ãã、URLã«ã¢ã¯ã»ã¹ãcodeãåå¾ã、ã¢ã«ã¦ã³ãï¼ã«éç¥ãã【ã¢ã«ã¦ã³ãï¼ä½æ¥】
- ã¢ã«ã¦ã³ãï¼ããå±ããcodeããã¢ã¯ã»ã¹ãã¼ã¯ã³ãçæ【ã¢ã«ã¦ã³ãï¼ä½æ¥】
oAuth2.0ã§ã¢ã¯ã»ã¹ãããç¸æã«codeä½æç¨ã®URLãéç¥ãã【ã¢ã«ã¦ã³ãï¼ä½æ¥】
ã¢ã«ã¦ã³ãï¼ã«é£çµ¡ããURLãä½æãã¾ã。ãã¡ãã¯、è¦åãããã®ã§åç´ã§ã。
https://accounts.google.com/o/oauth2/auth?scope={scope}redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&client_id={client_id}&access_type=offlineä¸è¨ã®ä¸ã§client_idã¯å³7ã®Client IDããç½®ãæãã¾ã。
scopeã«ã¤ãã¦ã¯、ã¢ã¯ã»ã¹ãããAPIã«å¿ãå¤æ´ããå¿ è¦ãããã¾ã主è¦ãªãã®ãã¡ã¢ãã¾ãã。注æç¹ã¨ãã¦、URLã¨ã³ã³ã¼ãããå¿ è¦ãããã¾ã。
è¤æ°åæå®ã®å ´åã¯ã¹ãã¼ã¹【%20】ã§ã¤ãªãã¾ã èªè¨¼ãå¿ è¦ãªåã ãæå®ãã¦ãã ãã。 | |
ã¢ã¯ã»ã¹ãµã¼ãã¹ | scope 【ã¨ã³ã³ã¼ãå¾ã®scope】 |
---|---|
AdSense Host API v4.1 | https://www.googleapis.com/auth/adsensehost 【https%3a%2f%2fwww%2egoogleapis%2ecom%2fauth%2fadsensehost】 |
Google Analytics API v3 | https://www.googleapis.com/auth/analytics https://www.googleapis.com/auth/analytics.edit https://www.googleapis.com/auth/analytics.manage.users https://www.googleapis.com/auth/analytics.readonly 【https%3a%2f%2fwww%2egoogleapis%2ecom%2fauth%2fanalytics%20https%3a%2f%2fwww%2egoogleapis%2ecom%2fauth%2fanalytics%2eedit%20…】 |
Blogger API V3 | https://www.googleapis.com/auth/blogger 【https%3a%2f%2fwww%2egoogleapis%2ecom%2fauth%2fblogger】 |
Google+ API v1 | https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.me https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile 【https%3a%2f%2fwww%2egoogleapis%2ecom%2fauth%2fplus%2elogin%20https%3a%2f%2fwww%2egoogleapis%2ecom%2fauth%2fplus%2eme%20…】 |
ãã®URLãã¢ã«ã¦ã³ãï¼å´ã«éãã¾ã。
ã¢ã«ã¦ã³ãï¼ããå±ãã、URLã«ã¢ã¯ã»ã¹ãcodeãåå¾ã、ã¢ã«ã¦ã³ãï¼ã«éç¥ãã【ã¢ã«ã¦ã³ãï¼ä½æ¥】
ä½æ¥ãã¢ã«ã¦ã³ãï¼ã«ç§»ãã¾ã。ã¢ã«ã¦ã³ãï¼ããæããããURLããããã¨å³8ã®ç»é¢ã«ç§»åãã¾ã。å³8.èªè¨¼ç»é¢
èªè¨¼ç»é¢ã§è¡¨ç¤ºããã¦ããé ç®ã«ã¢ã¯ã»ã¹ãã許å¯ãæ±ãã¦ããã®ã§
確èªå¾åé¡ãªããã°「æ¿èªãã」ãé¸æãã¾ã。
ãã®ç»é¢ã§ã¯、ã¢ããªãã£ã¯ã¹ã®scpoeãå©ç¨ãã¾ããã許å¯ä»¥å¤ã«
ã¢ã¯ã»ã¹ç¯å²ãªã©ãæå®ããå¿ è¦ããããªã©æéãããã¾ã。
ä½ããã®å½¢ã§ããã¥ã¢ã«ãããå ´åã¯ã注æã
ã¾ã、å³8ä¸é¨ã«「API Project」ã¨ããã¾ã。ãã¡ãã
oAuth2.0ã®ããã¸ã§ã¯ãåã§ã。ãã¡ããæ°ã«ãªãæ¹ã¯ãå¤æ´ãGoogle Consoleå
「APIs & auth」⇒「Consent screen」ããHPããã´ãªã©ã®å¤æ´ãã§ãã¾ã。
話ãæ»ã、å³8ã®å 容ã「æ¿èªãã」ã¨ä»¥ä¸ã®å³9ã®ç»é¢ã¨ãªãã¾ã。
å³9.codeåå¾ãé¢
ãã¡ãã®ããã¹ãã®å 容ãã¢ã«ã¦ã³ãï¼ã«æãã¦ãã ãã。
ããã§、ã¢ã«ã¦ã³ãï¼ã®ä½æ¥ã¯å®äºã§ã。
ã¢ã«ã¦ã³ãï¼ããå±ããcodeããã¢ã¯ã»ã¹ãã¼ã¯ã³ãçæ【ã¢ã«ã¦ã³ãï¼ä½æ¥】
ã¢ã«ã¦ã³ãï¼ããå±ããcodeãå©ç¨ãã¢ã¯ã»ã¹ãã¼ã¯ã³ãåå¾ãã¾ã。åã ããåºã¦ããããã«codeã¯ã¢ã«ã¦ã³ãï¼ãã¢ã«ã¦ã³ãï¼ã«è¨±å¯ãã¾ãããã¨Googleã«éç¥ãã¦ããªãããã§ã。
ã¢ã«ã¦ã³ãï¼ãGoogleã«APIã§ã¢ã«ã¦ã³ãï¼ã«ã¢ã¯ã»ã¹ããã¨éç¥ããã®ãã¢ã¯ã»ã¹ãã¼ã¯ã³ã¨ãªã訳ã§ã。
ã§ãã®ã§ãã®å 容ãæ¼æ´©ãã¦ãã¢ã«ã¦ã³ãï¼ã¯åæã«ã¢ã«ã¦ã³ãï¼ä»¥å¤ãããããããã訳ã§ã¯ããã¾ãã。
æ°ãåããªãã¦codeããã¢ã¯ã»ã¹ãã¼ã¯ã³ã«å¤æãã¾ããã。
以ä¸ã®URLããã¢ã¯ã»ã¹ãã¼ã¯ã³ãåå¾ã§ããã®ã§ããPOSTãããå¿ è¦ãããã¾ã。
ç§ã¯Macã§æä½ãã¦ããããMacç¨ã®curlã§è¨è¼ãããã¾ã。
Linuxãªãwgetã§ã代ç¨ã§ãã¾ã。
curl -d "code={code}&clent_id={client_id}&client_secret={client_secret}&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code" https://accounts.google.com/o/oauth2/tokenãã¡ãã®ãªãããã§ã。
{code}ã¯ã¢ã«ã¦ã³ã1ããã®å 容、{client_id}, {client_secret}ã¯å³7ã®Google Consoleããç½®ãæããã ãã。
ãã¡ããå®è¡ããã¨ä»¥ä¸ã®ãããªå 容ã帰ã£ã¦ãã¾ã。
{ "access_token" => "y------------------------", "token_type" => "Bearer", "expires_in" => 3600, "refresh_token" : "1/C------------------------" }JSONãã©ã¼ãããã¨ãªãã¾ã。ãã¡ããå©ç¨ãAPIã§åãåãããè¡ãã¾ã。
ã¨ããããã¢ã¯ã»ã¹ãã¼ã¯ã³ãåå¾ã§ããã®ã§APIã使ããããã«ãªãã¾ãã。
ãªãã¬ãã·ã¥ãã¼ã¯ã³ããã¢ã¯ã»ã¹ãã¼ã¯ã³ãåå¾ãã
æå¾ã«、ãªãã¬ãã·ã¥ãã¼ã¯ã³ã«ã¤ãã¦ã§ã。å ã»ã©åå¾ããã¢ã¯ã»ã¹ãã¼ã¯ã³ã§ãã、30ç§ã»ã©ããæã¡ã¾ãã。
ããã¯、ã»ãã¥ãªãã£ä¸ã®ä»æ§ã¨ã®ãã¨ã§ã。ãã®ãã30ç§æ¯ã«
æ°ããã¢ã¯ã»ã¹ãã¼ã¯ã³ãã¢ã«ã¦ã³ãï¼ã«ä¾é ¼ããã®ã¯ç¾å®çã§ã¯ããã¾ãããã®éã«å©ç¨ããã®ã
ãªãã¬ãã·ã¥ãã¼ã¯ã³(以ä¸refresh_token)ã§ã。
refresh_tokenãå©ç¨ãããã¨ã§æ°ããã¢ã¯ã»ã¹ãã¼ã¯ã³ãåå¾ã§ãã¾ã。
ãã¡ããPOSTãå®æ½ãããããªå½¢ã¨ãªãã¾ã。
curl -d "client_id={client_id}&client_secret={client_secret}&refresh_token={refresh_token}&grant_type=refresh_token" https://accounts.google.com/o/oauth2/tokenãã®ãããªå½¢ã«ãªãã¾ã。
ã¬ã¹ãã³ã¹ã¯、以ä¸
{ "access_token":"1/-----------", "expires_in":3920, "token_type":"Bearer" }ãã®ããã«ãªãã¾ã。ãã¡ãã®ã¢ã¯ã»ã¹ãã¼ã¯ã³ãå©ç¨ãAPIæ¥ç¶ãè¡ãã¾ã。
é·ããªãã¾ããã以ä¸ã説æã«ãªãã¾ã。
å¿ è¦ããã°ãæ´»ç¨ãã ãã。
ããã°ãæ¸ãã¦ããéã«æ°ãã¤ããã®ã§ããGoogle Consoleæ¥æ¬èªåã§ããã®ã§ãã
「API Project」ãé¸æã、「Account settings」ã«è¡ãã°è¨å®é ç®ãããã¾ã。
ãã£ããã¨è¦ã¦ã¿ããã®ã§ã。