我想弄清楚在我的應用程序中存儲用戶的唯一ID的好方法。我使用用戶管理Facebook登錄和對用戶的類:Facebook Graph API - 用戶標識唯一?
function FacebookUser(userObj) {
if (userObj) {
this.name = userObj.name;
this.id = userObj.id;
this.picture = userObj.picture.data.url;
this.isLoggedIn = true;
} else {
this.name = 'Login';
this.id = 0;
this.picture = '';
this.isLoggedIn = false;
}
}
基本上,我有角一種服務,處理Facebook登錄:
.service('facebookService', function() {
this.getFacebookUser = function (callback) {
$.getScript("//connect.facebook.net/en_US/sdk.js", function() {
var appId = "12312312313123";
FB.init({
appId: appId,
status: true,
cookie: true,
xfbml: true,
version: 'v2.4'
});
FB.getLoginStatus(function (response) {
if (response.status == 'connected') {
FB.api('/me?fields=picture,name,email', function (data) {
callback(new FacebookUser(data));
})
} else {
FB.login(function (response) {
FB.api('/me?fields=picture,name,email', function (data) {
callback(new FacebookUser(data));
})
});
}
})
});
}
})
什麼我想找出唯一標識符是什麼。我想僅使用用戶的電子郵件地址,因爲它保證是唯一的,但不想要求額外的權限。最初,我想使用ID字段,但我不清楚ID是否會改變或不改變。在Facebook文檔中,他們解釋ID字段等:
此人的用戶帳戶的ID。此ID對每個應用程序 都是唯一的,不能跨不同的應用程序使用。我們的升級指南,提供有關 應用程序特定的標識
根據這一信息,該ID是唯一的應用程序,並不能在不同的應用中使用。不過,我試圖在這裏更清楚一點。如果一個用戶今天登錄到應用程序,然後在幾個月內再次登錄,他們的ID是否會相同(如果它是相同的應用程序)還是會更改?次要問題是,如果/當我進行更改並獲得新的應用程序ID,ID是否會相同或更改?它在技術上仍然是相同的應用程序,只是一個不同的版本。我的假設是,由於它是一個不同的應用程序ID,Facebook認爲它是一個完全不同的應用程序,但我是新來的Facebook API,並期待專家的建議。
謝謝!我不知道Business Mapping API,但我認爲你完全回答了我的問題。 – mwilson
我可以確認userId對於不同設備上的相同App ID是相同的。 –
你的第一個答案拯救了我的一天。當我在記錄兩次後在數據庫中看到兩個不同的UID時,我嚇壞了。我爲我的Prod和Dev環境使用了2個不同的應用ID,並且認爲ID可能會隨時間而改變。但是因爲我在我的sdk初始化時設置了兩個不同的應用程序ID。你可能不是專家,但你肯定是釘了它! :) – Matias