我们有一个Android,ios和网络应用程序。该应用程序使用Facebook登录(使用easyfacebook.jar)作为授权用户的替代方式。它工作正常,但由于最近facebook sdk的变化,我无法获得实际的Facebook ID,因为facebook api返回特定于应用程序的用户ID。来自facebook页面:
从v1.0更改为v2.0
应用范围的用户ID:为了更好地保护人们的信息,何时 人们登录已升级使用的应用程序版本 Graph API v2.0,Facebook现在将发布应用程序范围的ID而不是 该人的原始身份证。但是,对于之前有过的用户 登录到您的应用程序后,用户ID不会更改。
我得到的id对于ios,web和android是不同的。请看一下:
ios and web https://www.facebook.com/559709594 //返回实际的用户ID
Android https://www.facebook.com/10152580446094595 //未返回实际的userId
我尝试使用正式的facebook sdk来获取实际的用户ID但是没有成功。我正在尝试使用以下方式获取用户ID:
user = graphApi.getMyAccountInfo();
facebookIdLogin = user.getId();
//returns app specific id not actual user id id = 10152580446094595
Log.d("username is : ", user.getName());//return actual value
Log.d("facebook id is this", facebookIdLogin);
Log.d("facebook user link", user.getLink());
//returns www.facebook.com/10152580446094595
有没有办法让我获得实际的userId。由于平台之间的同步,我需要实际的userId。无论我做什么,我只获得应用程序特定的userId。这是我要求的许可:
String permissions[] = { "public_profile", "user_friends", "email" };
非常感谢任何帮助。
答案 0 :(得分:5)
您所看到的是与Graph API v2.0一起引入的应用范围的user_id与全局user_id之间的区别。
详细了解https://developers.facebook.com/docs/apps/upgrading#upgrading_v2_0_user_ids。
答案 1 :(得分:0)
这个问题只是一个误解。所有版本都接收到与实际配置文件ID不同的配置文件ID。在android我有一个单独的仪表板配置,所以我收到不同的ID。 请注意,同一个具有相同帐户的信息中心中的同一项目的ID相同。。希望这有助于某人。