一部のユーザーがお金や労力を寄付する拡張機能があります。それらのユーザーをメールアドレスで識別できるようにしたいので、「ありがとう!」を表示できます。次回、拡張機能をロードするとき。
Google Chromeからユーザーのメールアドレスを取得する方法はありますか?
一部のユーザーがお金や労力を寄付する拡張機能があります。それらのユーザーをメールアドレスで識別できるようにしたいので、「ありがとう!」を表示できます。次回、拡張機能をロードするとき。
Google Chromeからユーザーのメールアドレスを取得する方法はありますか?
よし、解決した。このウェブサイトは基本的にそれを説明しています:
http://smus.com/oauth2-chrome-extensions/
しかし、そこですべてが説明されているわけではありません。そう:
まず、ユーザーが詳細を使用することを承認できるように、API クライアント ID とクライアント シークレットが必要です。次の手順では、Chrome 拡張機能で動作するように設定します。
次に、 https ://github.com/borismus/oauth2-extensions/tree/master/lib から入手できる oauth2 JavaScript ライブラリが必要です 。
これを、html ファイルと同じディレクトリにある oauth2 というフォルダーに入れる必要があります。
あなたのhtmlファイルに次のものを追加してください:
<script type="text/javascript" src="oauth2/oauth2.js"></script>
<script type="text/javascript">
var googleAuth = new OAuth2('google', {
client_id: ' $(YOUR CLIENT ID HERE) ',
client_secret: ' $(YOUR CLIENT SECRET HERE) ',
api_scope: 'https://www.googleapis.com/auth/userinfo.email'
});
googleAuth.authorize(function() {
// We should now have googleAuth.getAccessToken() returning a valid token value for us
// Create an XMLHttpRequest to get the email address
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if( xhr.readyState == 4 ) {
if( xhr.status == 200 ) {
var parseResult = JSON.parse(xhr.responseText);
// The email address is located naw:
var email = parseResult["email"];
}
}
}
// Open it up as GET, POST didn't work for me for the userinfo
xhr.open("GET","https://www.googleapis.com/oauth2/v1/userinfo",true);
// Set the content & autherization
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader('Authorization', "OAuth " + googleAuth.getAccessToken() );
xhr.send(null);
// Debugging stuff so we can see everything in the xhr. Do not leave this in production code
console.log(xhr);
});</script>
manifest.json には以下が必要です。
"パーミッション": ["https://accounts.google.com/o/oauth2/token", "https://www.googleapis.com/oauth2/v1/userinfo"]
また、マニフェスト ファイルには次のものが必要です。
"content_scripts": [ {
"matches": ["http://www.google.com/robots.txt*"],
"js": ["oauth2/oauth2_inject.js"],
"run_at": "document_start" }
それはかなりそれを世話するはずです。
私は自分自身に似たようなことをしようとしています。ユーザーのクラウド データを保存できるように、Google アカウントに基づいた ID を取得しようとしています。同じ方法でメールアドレスを取得できると思いますが、権限を承認する必要があります。成功したら、コードを投稿します。今、私は取得しようとしています: http://smus.com/oauth2-chrome-extensions/
私自身のGoogle APIキーとそれを使って作業しています。
これまでのところあまり成功していません。まともなドキュメントがある唯一の方法を実装するのに過去 2 時間を費やしましたが、機能が減価償却されていることがわかりました。結局、このoauth2のがらくたを機能させようとする必要があるかもしれません。