April 15, 2014

Chrome ExtensionでGoogleのサービスにOAuth2認証するメモ

https://developer.chrome.com/apps/app_identity#google に書いてある通りですが、忘れそうなのでメモしておきます。

1.
開発で使用しているmanifest.jsonの"permissions"に"identity"を追加して、Chromeウェブストアにアップロードします。(2014/04/17 追記: "identity"の追記は、Chromeウェブストアへのアップロードと同時で無くて良いかもしれません。未確認ですが。)
"permissions": [
    "identity"
]

2.
Chromeウェブストア経由でインストールして、インストールディレクトリに移動します。

Macなら "~/Library/Application\ Support/Google/Chrome/Default/Extensions/" の中です。

インストールしたアプリのmanifest.jsonに"key"が追加されているので、開発で使用しているmanifest.jsonに書き足します。(2014/04/17 追記: どうもこの"key"は、ローカルで一時的に書き足す感じで、レポジトリにコミットするべきではないようです。書き足した状態でChromeウェブストアにアップしようとするとエラーになりました。)


3.
Google APIs Console でプロジェクトを作成します。
https://console.developers.google.com/project

プロジェクトを作成したら、"CREATE NEW CLIENT ID"から"Installed application"を選択、"Chrome Application"を選択、"Application ID"を入力します。

払い出された"Client ID"(最初から表示されている"Client ID"とは異なります。)を開発で使用しているmanifest.jsonに書き足します。必要なスコープも併せて書きます。
"oauth2": {
    "client_id": "xxx.apps.googleusercontent.com",
    "scopes": [
        "https://www.googleapis.com/auth/youtube"
    ]
}
試しに、適当な場所でトークンが取れるか確認してみます。
chrome.identity.getAuthToken({'interactive': true}, function (token) {
    console.log(token);
});
これで、コンソールにトークンが表示されれば、認証はOK(なはず)です。

No comments:

Post a Comment