0

我正在使用具有两种用户的 flex mobile 构建移动应用程序:必须注册和登录的普通用户和可以使用其 Facebook 帐户登录的 Facebook 用户。然后每个用户可以将视频添加到他的个人列表中或从同一列表中删除一个。问题是我将如何区分普通用户和 Facebook 用户,一旦他们登录,我就可以访问数据库并加载每个用户添加的视频的列表。我的数据库包含 3 个表:普通用户表、Facebook 用户表和视频表。

4

1 回答 1

0

使用 Fb.getLoginStatus 的响应对象,您可以识别从 facebook 登录的用户

要确定用户是否对您的应用进行了身份验证:

FB.getLoginStatus(function(response) { if (response.status === 'connected') { // 用户已登录并验证了您的应用程序 // 并且 response.authResponse 提供 // 用户的 ID,一个有效的访问令牌,签名的 // 请求,以及访问令牌的时间 // 和签名的请求每个过期 var uid = response.authResponse.userID; var accessToken = response.authResponse.accessToken; } else if (response.status === 'not_authorized') { // 用户已登录 Facebook, // 但尚未验证您的应用 } else { // 用户未登录 Facebook。} });

响应对象

如果用户已经对您的应用程序进行了身份验证,则响应对象将如下所示:

{ status: 'connected', authResponse: { accessToken: '...', expiresIn:'...', signedRequest:'...', userID:'...' } }

通过测试响应对象中是否存在 authResponse 对象,您可以确定用户已经验证了您的应用程序,并且您可以开始进一步调用 Facebook API。如果 authResponse 对象不存在,则用户要么未登录 Facebook,要么未授权您的应用程序。

authResponse 对象最有用的部分是 userID(用户 ID)和 accessToken。访问令牌可用于代表该用户向 Facebook API 发出请求。userID 是您的应用程序中存在的用户的唯一标识符。

http://blogs.adobe.com/flexdoc/2011/10/create-a-mobile-facebook-flex-application-in-flash-builder-4-5-part-1.html

http://www.adobe.com/devnet/games/articles/getting-started-with-facebooksdk-actionscript3.html#articlecontentAdobe_numberedheader_1

于 2013-05-23T04:43:07.997 回答