私は、自分のアプリにユーザーの一意のIDを格納するための良い方法を見つけようとしています。私は、ユーザー管理のためのFacebookのログインを使用して、ユーザーのためのクラスを持っています:Facebook Graph API - ユーザーIDは一意ですか?
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はアプリに固有であり、異なるアプリケーション間で使用することはできません。しかし、私はここでもう少し明確にしようとしています。 1人のユーザーが今日アプリにログインしてから数ヶ月後に再び同じID(同じアプリの場合)ですか、それとも変更されますか?副次的な質問は、私が変更を加えて新しいアプリIDを取得した場合、そのIDは同じか変更されるのでしょうか?それは技術的には同じアプリで、別のバージョンです。私の前提は、それは別のappIdなので、facebookはそれが完全に別のアプリだと思っていますが、私はfacebook apiには新しく、専門家に助言を求めています。
ありがとうございます!私はBusiness Mapping APIを認識していませんでしたが、あなたが私の質問に完全に答えたと思います。 – mwilson
異なるデバイス上の同じApp IDに対してuserIdが同じであることを確認できます。 –
あなたの最初の回答が私の一日を保存しました。私は2回ロギングした後、私のDBに2つの異なるUIDがあるのを見て驚いていました。私はProdとDevの環境で2つの異なるアプリケーションIDを使用し、IDが時間的に変化する可能性があると考えました。私はsdkの初期化時に2つの異なるアプリケーションIDを設定していたためでした。あなたは専門家ではないかもしれませんが、確かにそれを釘付けにしました! :) – Matias