2016-06-09 106 views
0

我在清單文件中使用identity權限,在我的JavaScript代碼中,我使用chrome.identity.getAuthToken({ 'interactive': true }, function(token)來獲取使用識別標記。如何使用OAuth獲取Chrome擴展中的唯一用戶ID?

如何獲取唯一的用戶ID或電子郵件地址?最好不添加新的權限。

回答

1

您可以使用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來獲取用戶信息。我相信你需要設置profileemail範圍。如果您使用Google API Client library,則可致電gapi.client.oauth2.userinfo.get()。這更嚴格地滿足您的問題的字母,它指定使用OAuth並且不喜歡添加權限,但我猜想chrome.identity.getProfileUserInfo()是您真正需要的。

0

沒有額外的權限,它將取決於您在manifest.json文件中聲明的oauth2 scopes

例如,如果您聲明瞭任何Google雲端硬盤作用域,則可以使用Google Drive的關於GET方法(請參閱here)檢索other data中的用戶ID和電子郵件。

相關問題