2014-07-03 114 views
2

我们有一个应用程序可用于Android,IOS和网络。该应用程序使用Facebook登录(使用easyfacebook.jar)作为授权用户的替代方式。它工作正常,但由于facebook sdk最近的变化,我无法获得实际的Facebook ID,因为Facebook API会返回应用特定的用户ID。从facebook页:Facebook登录问题无法获取用户的实际Facebook ID

的变化,从1.0版到2.0版

应用范围的用户ID:为了更好地保障人民群众的信息,当 人登录到应用程式版本已经升级要使用 Graph API v2.0,Facebook现在将发布应用范围的ID,而不是该人的原始ID。但是,对于先前登录到您的应用的用户,用户ID不会更改。

我得到的id与ios,web和android不同。请看看:

iOS和网络https://www.facebook.com/559709594 //返回的实际用户ID

的Androidhttps://www.facebook.com/10152580446094595 //不返回实际用户id

我尝试了官方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 

有什么办法,我让实际用户ID。由于平台之间的同步,我需要实际的userId。无论我做什么,我只获取特定于应用程序的userId。这是我要求的许可:

String permissions[] = { "public_profile", "user_friends", "email" }; 

任何帮助,高度赞赏。

回答

0

这个问题只是一个误解。所有版本都收到与实际配置文件ID不同的配置文件ID。在android中我有一个单独的仪表板配置,所以我收到不同的ID。 请注意,对于同一个仪表板中具有相同帐户的同一项目,ID将相同。。希望这可以帮助某人。