2011-03-09 162 views
1

如何获取Face Book当前UserId。我想避免要求权限,因为我的用户只是浏览,我只想看看他们以前是否做过。获取当前用户的UserId的最佳方法是什么?

+0

有没有办法找出他们是否是一个应用程序的用户了吗?我基本上想要允许浏览我的应用程序,如果他们想要做更多,那么我会要求权限。我不想阻止拥有权限的用户,直到他们检查了我应用中的某些开放内容。 – Odisea2 2011-03-09 04:39:08

+0

好吧,你可以将用户ID保存在数据库中,当用户登录时检查用户是否存储,另一件事你必须弹出用户ti接受权限,你可以尽量减少权限的数量,但你不能取消它 – 2012-10-14 06:19:43

回答

0

据我所知,我不认为有一种方法来获取当前用户的UserId而不询问权限。

如果你看一下指南signed request参数,它不返回用户ID,直到用户允许应用程序的基本访问。

+0

这是奇怪的是,因为你可以使用FB http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus中的javaScript SDK来做到这一点,有没有一个原因,他们不让你从SDK中做到这一点? – Odisea2 2011-03-09 05:49:08

+0

你无法从javascript sdk中获取用户标识而没有让它们允许你的应用程序.....你只能在完成这个[FB.login]后获得用户标识(http://developers.facebook.com/文档/参考/ JavaScript的/的FB.login /) – yulun 2011-03-09 08:09:03

+0

你是对的,我不能获得用户ID,但我可以告诉大家,如果他们是我的应用程序中,用户这是我真正想要的(让用户id只是一个我的方式来检查我的数据库)。那么,有没有用SDK的方式来告诉如果用户有我的应用程序在FB就像这个JavaScript FB.getLoginStatus呢? – Odisea2 2011-03-09 16:58:30

1

使用Facebook的C#SDK:

string signedRequest = Request.Form["signed_request"]; 
    var DecodedSignedRequest = FacebookSignedRequest.Parse(Facebook.Web.FacebookWebContext.Current.Settings.AppSecret, signedRequest); 
        dynamic SignedRequestData = DecodedSignedRequest.Data; 
     accessToken = (String)SignedRequestData.oauth_token; 
         var app = new FacebookWebClient(); 
         var me = (IDictionary<string, object>)app.Get("me"); 
         firstName = (string)me["name"]; 
         U_Id = (string)me["id"]; 
相关问题