#author("2021-04-26T12:59:24+00:00","default:wikiadmin","wikiadmin")
#author("2021-04-27T05:50:02+00:00","default:wikiadmin","wikiadmin")
-GoogleAPIについてまとめ

*料金について [#eb34aad9]

ほとんどのAPIは無料枠があるが毎日チェックして、不審なAPIコールがないか確認すること!プロジェクトはいくらでも作れるし、請求先アカウントもいくつでも作れる。
が不要な課金を避ける為必要があるまでプロジェクトの請求先アカウントはなしにしておくのがお勧め。

*セキュリティ強化 [#befac51c]

-IP指定する
-APIコール回数をチェックする https://console.cloud.google.com/google/maps-apis/api-list
-請求アラートを設定する
-費用をチェックする(無料枠でも10/-10のように出る)

*Google MAP API [#z662d3f2]

**経度緯度から [#ocfabf33]

https://so-zou.jp/web-app/tech/web-api/google/map/geocoding.htm#no7

公式ドキュメントがとても探しづらかった(reverse geocode)

https://developers.google.com/maps/documentation/geocoding/overview?hl=ja

**取得方法 [#pc3b00c9]

**セキュリティ [#qc81e005]

**ページ一覧 [#yb51648c]

|API一覧|https://console.cloud.google.com/apis/dashboard|
|料金||

***APIキー発行 [#t7110857]

たんなるAPIキーであればシンプルだが、IP制限はかけておいた。

*各API [#v90ef7e5]

https://maps.googleapis.com/maps/api/place/findplacefromtext/json?input=%E3%83%80%E3%83%8A%E3%83%91%E3%83%8B&inputtype=textquery&fields=photos,formatted_address,name,rating,opening_hours,geometry&key=API_KEY


https://maps.googleapis.com/maps/api/place/details/json?placeid=ChIJ_5gRusbcGGARiHg_-zcEHeA&fields=name,rating,formatted_phone_number&key=YOUR_API_KEY
*公式情報ページ [#se492ab0]

|API一覧|https://developers.google.com/apis-explorer/#p/|
|API Dashboard|https://console.developers.google.com/apis/dashboard|
|ConsoleのAPI設定TOP|https://console.developers.google.com/apis/credentials|
|Developer Console|https://console.developers.google.com/cloud-resource-manager?pli=1&authuser=1&creatingProject=true|

**GmailAPI [#ia3b7781]

-https://github.com/google/mail-importer

*認証フローをまとめてみた [#d6ac09b6]

**事前準備 [#mfca6a80]

-APIの有効化
-OAuth2.0クライアントアカウントの作成(クライアントIDが重要)

**Googleアカウントによる認証をへる [#x3fb9a5f]

https://accounts.google.com/o/oauth2/auth?client_id={クライアントID}&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://www.googleapis.com/auth/gmail.readonly&response_type=code&approval_prompt=force&access_type=offline


 curl -X POST -d "grant_type=refresh_token&client_id=クライアントID&client_secret=クライアントSECRET&refresh_token=リフレッシュトークン" https://accounts.google.com/o/oauth2/token
**上記画面で認証した後にrefresh_tokenを得る [#m7273025]


*GMail APIアクセスまでの手順 [#u35bd2d4]

**1.OAuthのクライアントID (サービスアカウントは秘密鍵を利用して認証を挟まない形式) [#cbb0752f]
クライアントIDとSecretを取得できる

https://console.developers.google.com/apis/credentials?project=プロジェクト名

**サービスアカウントの管理はこちら! [#be3f5f6d]

https://console.developers.google.com/iam-admin/serviceaccounts/project?project=プロジェクト名


**2.以下のページにアクセスすると、認証挟んだ後にrefresh_token取得できる。 [#j56190c7]


https://accounts.google.com/o/oauth2/auth?client_id=クライアントID&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://www.googleapis.com/auth/gmail.readonly&response_type=code&approval_prompt=force&access_type=offline


**3.以下のクエリーでアクセストークン取得 [#s259d60d]

curl -d client_id=クライアントID -d client_secret=781ht-pJ4_G1G2jRl7QcJFAP -d redirect_uri=urn:ietf:wg:oauth:2.0:oob -d grant_type=authorization_code -d code=クライアントシークレット https://accounts.google.com/o/oauth2/token

**4.アクセストークンの情報確認 [#p43e3696]

https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=3で取得したアクセストークン

**5.一覧と詳細 [#db1d4b8d]

curl -H "Authorization: Bearer 3で取得したアクセストークン" https://www.googleapis.com/gmail/v1/users/me/messages/



*OAuth2.0の解説。ここが一番詳しいかな [#ma4bc272]

https://himakan.net/websites/how_to_google_oauth

-Gmailの認証もOAuth2.0対応じゃない場合は安全性の低いアプリとみなされてしまう。


*Developer Console [#c4ed5562]

*Service Accountを利用したアクセスについて [#td025a55]

-FireBaseで使ったものの情報が非常に少ない!公式情報としては下記の通り。

https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority

-Google Play APIでも使ってた

https://github.com/googlesamples/android-play-publisher-api/blob/master/v2/java/src/com/google/play/developerapi/samples/AndroidPublisherHelper.java

-使って見た事例

http://www.yoheim.net/blog.php?q=20160411

*API認証周り [#lc49f6f6]

サービスアカウント経由であれば秘密鍵JSONを利用し、OAuth2.0であればClientID/KEYを使う(リダイレクトURLなしを作成するにはその他を選択する)

**用語集 [#k9021d24]

|CLIENT ID|OAuth 2.0 クライアントID|
|CLIENT KEY|OAuth 2.0 クライアントパスワード|


*Google Play Console [#ga9aac43]

https://developer.android.com/google/play/developer-api.html#subscriptions_api_overview

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS