Your SlideShare is downloading. ×
0
GDG Shikoku #37 徳島テクニカルセッション	  GOOGLE PLAY SERVICES について	                      Smartium株式会社 江川 崇
江川 崇(EGAWA Takashi)	    Smartium株式会社 (http://smartiums.com ) 代表取締役	    Google Developers Expert (https://developers.goog...
Google Android プログラミング入門改訂2版	    江川崇、神原健一、山田暁通、    佐野徹郎、郷田まり子 共著    定価 :3,570円 (本体3,400円)    発売日:2012年8月31日    形態 :B5...
Remote TestKit	    カトマックが提供するAndroid用リモートテスト環境      必要な端末を必要な時間だけ借りてリモートでテスト      ADBが繋がる      PCから画面の操作も可能http://appk...
Google Play Serviceについてお話ししようかと思いましたが…	    Google Play Services だけだとすぐ終わりそう    Google Play Services はGoogle APIのプラット    ...
GDG Shikoku #37 徳島テクニカルセッション	 GOOGLE API の活用 FOR ANDROID	                      Smartium株式会社 江川 崇
Agenda	    GoogleアカウントとAndroid             互換/非互換      Android      GoogleアカウントとAndroidデバイス    プログラムからのGoogleアカウントの活用 ...
GOOGLEアカウントとANDROID
Android 互換/非互換	    世の中の全てのAndroidデバイスは、必ず以下の     2種類のいずれかに該当する。         Android互換(“Android compatible” である)         And...
Android互換	    Android Compatibility Programに従ったデバイス	       http://source.android.com/compatibility/index.html	    Compa...
Android 非互換    Androidとして公式には認められないデバイス  ※Compatibility Definition Document (CDD)に従っていな いデバイス	   Google系サービスアプリが利用できない	 ...
Google アカウントとAndroidデバイス	  多くのGoogleサービスを利用するために必要なID  Android互換デバイスは、必ずひとつ以上の   Googleアカウントと紐づいていると見做してよい      アカウントをア...
Googleアカウント	    Googleアカウントを軸に様々なサービスを利用可能                     Androidは、Googleアカウント                     を使って様々なサービスを利    ...
アカウントの管理アカウントへのアクセスリクエスト	 アカウント認証情報はデバイスが持つ  アプリ毎に認証情報を管理する必要が無い。  ユーザーも何度もIDとパスワードを入力する必要が無い。  アプリから認証済アカウントへのアクセスが容易。
プログラムからのGOOGLEアカウントの活用
Googleアカウントの利用	    以前はClientLoginやAuthSubという仕組みを利用。た     だし2012年の春にdeprecatedに。     参考)       ClientLogin	       https:/...
OAuthとは	    WEBに公開しているデータやAPIに対するアクセ     スの認可を目的として標準化された通信仕様      OAuth   RFC5849      OAuth2.0 RFC6749    他のプログラムから利...
OAuthの主な長所	    クライアント(コンシューマ)側に認証情報を残さな     い    全て許可/全て拒否ではなく、アクセス範囲(ス     コープ)の単位で扱える    一度許可したものを後から取り消せる
OAuth2.0/ OAuth1.0	  OAuth2.0は、OAuth1.0の上位規格。  OAuth1.0は       WEBサービスアプリを前提としていた       シーケンスが複雑で、リクエストの署名やリクエストトーク   ...
Google Plugin for Eclipse    Googleの各サービスのAPIや、開発環境を手軽に     ダウンロード、セットアップできるEclipse Plugin    最近はADT(Android Development...
Googleライブラリのセットアップ	    プロジェクトを右クリック     ->Google->Add Google APIs…
Googleライブラリのセットアップ	    必要なライブラリを選択
Googleライブラリのセットアップ	    プロジェクトのビルドバスに追加される      依存関係のあるJARも含まれる
APIs Consoleでの設定	    自作のWEB APIか、既にあるAPIかにかかわらず、     OAuthを介してGoogleサービスを利用する場合、     プロジェクトを作成し、コンシューマ側にキーを発     行する必要がある...
APIs Consoleでの設定	  Google APIs Console( https://code.google.com/   apis/console ) からプロジェクトを作成  メニューの「API Access」 ->「Crea...
自作公開APIでの利用例Google Cloud Endpoints	    AppEngineをバックエンドとして使うクライアントアプリ     ケーションの開発をより簡単にすることを目的として     開発されているAppEngineの新...
Cloud Endpoints の主な機能	  サーバー側APIクラスやコンフィグの生成	  クライアントAPIライブラリの自動生成      JavaScript、Objective-C,   Java    OAuthによるAPI認...
Cloud EndpointsでのAPI定義 (Java)	    公開したいクラスやメソッドにアノテーションを宣言@Api(name = "tictactoe")
public class BoardEndpoint {
  @ApiMet...
Cloud EndpointsでのAPI定義 (Java)	    通常は認証無しで呼べるが、OAuthをサポートす     る際もアノテーションで対応     @Api(
        name = "tictactoe",
      ...
公開APIの確認	    AppEngineにデプロイしたAPIは、API Explorerで確     認できる    URL)      https://developers.google.com/apis-explorer/?   ...
公開APIの確認	    公開API群の一覧
公開APIの確認	    APIが提供するエンドポイントの一覧
公開APIの確認	    パラメータを指定してAPIの実行テスト
ANDROIDクライアントでの利用
Androidクライアントからの利用例	    AccountManagerからAuthトークンを取得     AccountManager am = AccountManager.get(this);        Bundle optio...
Androidクライアントからの利用例	    Authトークンが得られなかった時は認可画面へprivate class OnTokenAcquired implementsAccountManagerCallback<Bundle> {	 ...
Androidクライアントからの利用例	     リクエスト時はAuthトークンの他にクライアントID等      も渡すURL url = new URL("https://www.googleapis.com/・・・");	 	 URLC...
Google Playサービス	    AndroidアプリとGoogleの各種サービスとの連携を     さらに容易に行えるように拡張されたコンポーネント      現状は、従来のアプリからのGoogleアカウント認証機能      に加...
Google Playサービス	    各アプリケーションからライブラリを利用してGoogle     Playサービスアプリと連携する	                Android Maps v.2もGoogle Playサービ     ...
Google Playサービスが入っているデ     バイス	  Google Playサービスアプリは、2.2以上のデバイスが対象  Google Playアプリの最新版と同時にデバイスにインストー   ルされる  2.2以上のAndr...
Google Playサービスの使い方	 現時点ではAndroid SDK Managerで、extras/Google Play  services をインストールすると、 「[Android SDK]/extras/google/goog...
コード例	    String authToken = null;
 try {
	      authToken = GoogleAuthUtil.getToken(mActivity,t.egawa@gmail.com, “oauth2:h...
認可画面の例	  認可によってアクセス可能なスコープの例  自カウントに対するGoogle +APIによるア   クセス  oauth2:https://www.googleapis.com/auth/   plus.me
まとめ	  Googleは、様々なサービスを提供しており、それ   らをGoogleアカウント経由で利用できる  Google APIは、OAuth2を使って認証・認可する。   独自のGoogle APIを作成する為の手段として、   G...
ご清聴ありがとうございました          EGAWA Takashi
Upcoming SlideShare
Loading in...5
×

GDG Shikoku 2013

953

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
953
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "GDG Shikoku 2013"

  1. 1. GDG Shikoku #37 徳島テクニカルセッション GOOGLE PLAY SERVICES について Smartium株式会社 江川 崇
  2. 2. 江川 崇(EGAWA Takashi)   Smartium株式会社 (http://smartiums.com ) 代表取締役   Google Developers Expert (https://developers.google.com/experts/ )   (株)カトマック・情報技術開発(株)・(株)トップゲート 技術顧問   Androidプログラミング入門 改訂2版   IMoNi、L10N twitter:@t_egg Google+:t.egawa@gmail.com
  3. 3. Google Android プログラミング入門改訂2版   江川崇、神原健一、山田暁通、  佐野徹郎、郷田まり子 共著  定価 :3,570円 (本体3,400円)  発売日:2012年8月31日  形態 :B5変 (448ページ)  ISBN :978-4-04-886068-0  アスキー・メディアワークス  達人出版会からPDF版もあり  サンプルを全て詰めたアプリアリマス  https://play.google.com/store/apps/details?id=jp.asciimw.androidbook
  4. 4. Remote TestKit   カトマックが提供するAndroid用リモートテスト環境  必要な端末を必要な時間だけ借りてリモートでテスト  ADBが繋がる  PCから画面の操作も可能http://appkitbox.com/testkit
  5. 5. Google Play Serviceについてお話ししようかと思いましたが…   Google Play Services だけだとすぐ終わりそう  Google Play Services はGoogle APIのプラット フォーム  AndroidにおけるGoogle APIの活用全般のお話し します。
  6. 6. GDG Shikoku #37 徳島テクニカルセッション GOOGLE API の活用 FOR ANDROID Smartium株式会社 江川 崇
  7. 7. Agenda   GoogleアカウントとAndroid 互換/非互換  Android  GoogleアカウントとAndroidデバイス  プログラムからのGoogleアカウントの活用  OAuth  Google Plugin for Eclipse  Google Cloud Endpoints  Androidクライアントでの利用  AccountManager  Googl Playサービス
  8. 8. GOOGLEアカウントとANDROID
  9. 9. Android 互換/非互換   世の中の全てのAndroidデバイスは、必ず以下の 2種類のいずれかに該当する。   Android互換(“Android compatible” である)   Android非互換(“Android compatible” ではない)
  10. 10. Android互換   Android Compatibility Programに従ったデバイス   http://source.android.com/compatibility/index.html   Compatibility Definition Document (CDD)に沿って開 発され、Compatibility Test Suite (CTS)を通過した端 末   Compatibility Definition Document (CDD):仕様   Compatibility Test Suite (CTS):テスト  日本で買えるほぼ全てのスマフォやタブレットは Android互換
  11. 11. Android 非互換  Androidとして公式には認められないデバイス  ※Compatibility Definition Document (CDD)に従っていな いデバイス  Google系サービスアプリが利用できない  用途を限定したデバイスや安価なデバイスには増え つつある 例) ONKYO Internet Stick NT-A1 Covia FleadTab CTB-701 Kindle Fire HD
  12. 12. Google アカウントとAndroidデバイス   多くのGoogleサービスを利用するために必要なID  Android互換デバイスは、必ずひとつ以上の Googleアカウントと紐づいていると見做してよい  アカウントをアクティベートしないとGoogle Mapsも Google Playも Gmailも使えない  Google Appsアカウント(独自ドメイン)も可能
  13. 13. Googleアカウント   Googleアカウントを軸に様々なサービスを利用可能 Androidは、Googleアカウント を使って様々なサービスを利 用する入り口となる
  14. 14. アカウントの管理アカウントへのアクセスリクエスト  アカウント認証情報はデバイスが持つ  アプリ毎に認証情報を管理する必要が無い。  ユーザーも何度もIDとパスワードを入力する必要が無い。  アプリから認証済アカウントへのアクセスが容易。
  15. 15. プログラムからのGOOGLEアカウントの活用
  16. 16. Googleアカウントの利用   以前はClientLoginやAuthSubという仕組みを利用。た だし2012年の春にdeprecatedに。 参考)   ClientLogin https://developers.google.com/accounts/docs/ AuthForInstalledApps   AuthSub https://developers.google.com/accounts/docs/AuthSub  現在はOAuth 2.0を使うようアナウンス有り
  17. 17. OAuthとは   WEBに公開しているデータやAPIに対するアクセ スの認可を目的として標準化された通信仕様  OAuth RFC5849  OAuth2.0 RFC6749  他のプログラムから利用者のGoogleアカウントに 紐づいているサービスやデータに対するアクセス を許したり拒否したりする仕組み
  18. 18. OAuthの主な長所   クライアント(コンシューマ)側に認証情報を残さな い  全て許可/全て拒否ではなく、アクセス範囲(ス コープ)の単位で扱える  一度許可したものを後から取り消せる
  19. 19. OAuth2.0/ OAuth1.0   OAuth2.0は、OAuth1.0の上位規格。  OAuth1.0は   WEBサービスアプリを前提としていた   シーケンスが複雑で、リクエストの署名やリクエストトーク ンが必須であるなど、使いにくい面があった。   特にJavaScriptなどのWEBアプリから  OAuth2.0は、OAuth1.0の簡略化を目指したもの。   シーケンスを簡単に   リクエストをHTTPSに限定することで、改ざんが無いことを担保す るため、署名やトークンが必須ではない   デスクトップクライアントやJavaScriptからの利用も想定
  20. 20. Google Plugin for Eclipse  Googleの各サービスのAPIや、開発環境を手軽に ダウンロード、セットアップできるEclipse Plugin  最近はADT(Android Development Tools) も含まれ ているので、Androidを使った開発や、Androidと他 のGoogle APIとを組み合わせた開発でも便利に 使えるhttps://developers.google.com/eclipse/
  21. 21. Googleライブラリのセットアップ   プロジェクトを右クリック ->Google->Add Google APIs…
  22. 22. Googleライブラリのセットアップ   必要なライブラリを選択
  23. 23. Googleライブラリのセットアップ   プロジェクトのビルドバスに追加される  依存関係のあるJARも含まれる
  24. 24. APIs Consoleでの設定   自作のWEB APIか、既にあるAPIかにかかわらず、 OAuthを介してGoogleサービスを利用する場合、 プロジェクトを作成し、コンシューマ側にキーを発 行する必要がある。  ひとつのプロジェクトに対して20個のクライアント IDが発行できる。
  25. 25. APIs Consoleでの設定   Google APIs Console( https://code.google.com/ apis/console ) からプロジェクトを作成  メニューの「API Access」 ->「Create OAuth 2.0 Client ID…」を選択
  26. 26. 自作公開APIでの利用例Google Cloud Endpoints   AppEngineをバックエンドとして使うクライアントアプリ ケーションの開発をより簡単にすることを目的として 開発されているAppEngineの新機能   Google Plugin for Eclipseで開発可能   参考)Google I/O 2012でのコードラボ http://tictactoe-codelab.appspot.com/  現状はまだ限定公開   Trusted Testers ( https://endpoints-trusted- tester.appspot.com/ )に申請して利用する(ローカルサー バーで試すだけなら申請不要)   2012年末のAppEngineのアップデートで導入されるかも? と言う噂があったが、まだ正式公開されていない
  27. 27. Cloud Endpoints の主な機能   サーバー側APIクラスやコンフィグの生成   クライアントAPIライブラリの自動生成  JavaScript、Objective-C, Java  OAuthによるAPI認証の標準サポート
  28. 28. Cloud EndpointsでのAPI定義 (Java)   公開したいクラスやメソッドにアノテーションを宣言@Api(name = "tictactoe")
public class BoardEndpoint {
  @ApiMethod(name = "board.getmove", httpMethod = "POST")
  public Board getmove(Board board) {
   ・・・
  }
 ・・・
  29. 29. Cloud EndpointsでのAPI定義 (Java)   通常は認証無しで呼べるが、OAuthをサポートす る際もアノテーションで対応 @Api(
    name = "tictactoe",
    clientIds = {"xxxxx.apps.googleusercontent.com", "AndroidのClient ID"},
    audiences = {”your_appid.appspot.com"}
 ) ・・・
  30. 30. 公開APIの確認   AppEngineにデプロイしたAPIは、API Explorerで確 認できる  URL)  https://developers.google.com/apis-explorer/? base=https://your_appid.appspot.com/_ah/api
  31. 31. 公開APIの確認   公開API群の一覧
  32. 32. 公開APIの確認   APIが提供するエンドポイントの一覧
  33. 33. 公開APIの確認   パラメータを指定してAPIの実行テスト
  34. 34. ANDROIDクライアントでの利用
  35. 35. Androidクライアントからの利用例   AccountManagerからAuthトークンを取得 AccountManager am = AccountManager.get(this); Bundle options = new Bundle(); am.getAuthToken(myAccount_, mScope, options, this, new OnTokenAcquired(), new Handler(new OnError()));
  36. 36. Androidクライアントからの利用例   Authトークンが得られなかった時は認可画面へprivate class OnTokenAcquired implementsAccountManagerCallback<Bundle> { @Override public void run(AccountManagerFuture<Bundle> result) { ... Intent launch = (Intent) result.get(AccountManager.KEY_INTENT); if (launch != null) { startActivityForResult(launch, 0); return; } } }
  37. 37. Androidクライアントからの利用例   リクエスト時はAuthトークンの他にクライアントID等 も渡すURL url = new URL("https://www.googleapis.com/・・・"); URLConnection conn = (HttpURLConnection)url.openConnection(); conn.addRequestProperty("client_id",your client id); conn.addRequestProperty("client_secret", your clientsecret); conn.setRequestProperty(“Authorization”, your auth token);
  38. 38. Google Playサービス   AndroidアプリとGoogleの各種サービスとの連携を さらに容易に行えるように拡張されたコンポーネント  現状は、従来のアプリからのGoogleアカウント認証機能 に加え、OAuth 2.0 を用いて、Google +サービスへの認 可を行えるように拡張されたもの
  39. 39. Google Playサービス   各アプリケーションからライブラリを利用してGoogle Playサービスアプリと連携する Android Maps v.2もGoogle Playサービ ス前提なので、今後はこの形態で提供 されるAPIが増えそう。
  40. 40. Google Playサービスが入っているデ バイス   Google Playサービスアプリは、2.2以上のデバイスが対象  Google Playアプリの最新版と同時にデバイスにインストー ルされる  2.2以上のAndroid互換デバイスであれば、ほぼ例外無く 使えると考えておいてよさそう   「Google Playサービス」というアプリが入っているかどうか で判断
  41. 41. Google Playサービスの使い方  現時点ではAndroid SDK Managerで、extras/Google Play services をインストールすると、 「[Android SDK]/extras/google/google_play_services」 の下に、ライブラリプロジェクトやサンプルプロジェクトがダ ウンロードされる  このライブラリプロジェクトをEclipseにインポートし、アプリ のプロジェクトから参照する形で利用する
  42. 42. コード例 String authToken = null;
 try {
  authToken = GoogleAuthUtil.getToken(mActivity,t.egawa@gmail.com, “oauth2:https://www.googleapis.com/auth/userinfo.profile”);
 } catch (GooglePlayServicesAvailabilityException playException) {
     // Google Play Servicesが使えないデバイスの場合
 } catch (UserRecoverableAuthException userRecoverableException) {
     // トークンが得られなかった場合
     // 認可画面へ遷移する
     mActivity.startActivityForResult(userRecoverableException.getIntent(), 1);
 } catch (GoogleAuthException fatalException) {
     // その他の例外
 }
・・・
  43. 43. 認可画面の例   認可によってアクセス可能なスコープの例  自カウントに対するGoogle +APIによるア クセス  oauth2:https://www.googleapis.com/auth/ plus.me
  44. 44. まとめ   Googleは、様々なサービスを提供しており、それ らをGoogleアカウント経由で利用できる  Google APIは、OAuth2を使って認証・認可する。 独自のGoogle APIを作成する為の手段として、 Google Cloud Endpointsなどが出てきている。   様々なGoogleサービスと連携するための土台とし て、Google Playサービスの導入、提供が開始さ れており、今後はGoogle PlayサービスによるAPI の提供が標準的な形態になると思われる
  45. 45. ご清聴ありがとうございました EGAWA Takashi
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×