我在清單文件中使用identity
權限,在我的JavaScript代碼中,我使用chrome.identity.getAuthToken({ 'interactive': true }, function(token)
來獲取使用識別標記。如何使用OAuth獲取Chrome擴展中的唯一用戶ID?
如何獲取唯一的用戶ID或電子郵件地址?最好不添加新的權限。
我在清單文件中使用identity
權限,在我的JavaScript代碼中,我使用chrome.identity.getAuthToken({ 'interactive': true }, function(token)
來獲取使用識別標記。如何使用OAuth獲取Chrome擴展中的唯一用戶ID?
如何獲取唯一的用戶ID或電子郵件地址?最好不添加新的權限。
您可以使用chrome.identity.getProfileUserInfo()
來獲取電子郵件地址和唯一的ID。您需要添加identity.email
權限(除identity
之外)。它不需要OAuth2令牌(甚至不需要網絡連接)。
下面是一個最小的擴展,它打印此信息到後臺頁面的控制檯:
的manifest.json
{
"manifest_version" : 2,
"name" : "Identity Test",
"version" : "0.1",
"background": {
"scripts": ["background.js"]
},
"permissions": [
"identity",
"identity.email"
]
}
background.js
chrome.identity.getProfileUserInfo(function(userInfo) {
console.log(JSON.stringify(userInfo));
});
你可以而是通過使用OAuth2令牌調用Google API來獲取用戶信息。我相信你需要設置profile
和email
範圍。如果您使用Google API Client library,則可致電gapi.client.oauth2.userinfo.get()
。這更嚴格地滿足您的問題的字母,它指定使用OAuth並且不喜歡添加權限,但我猜想chrome.identity.getProfileUserInfo()
是您真正需要的。
沒有額外的權限,它將取決於您在manifest.json文件中聲明的oauth2 scopes。
例如,如果您聲明瞭任何Google雲端硬盤作用域,則可以使用Google Drive的關於GET方法(請參閱here)檢索other data中的用戶ID和電子郵件。