通过 facebook ios SDK 结合 Azure 移动服务获取名字和姓氏
Posted
技术标签:
【中文标题】通过 facebook ios SDK 结合 Azure 移动服务获取名字和姓氏【英文标题】:Getting first and last name through facebook ios SDK in conjunction with Azure Mobile Services 【发布时间】:2015-10-26 16:27:49 【问题描述】:我正在创建一个使用 Azure 移动服务作为后端并使用 Facebook 进行身份验证的简单 ios 应用程序。我按照位于here 的指南设置所有内容并通过 Facebook 登录。然而,以这种方式登录时唯一返回的是一个具有两个属性的对象,如下所示
MSUser* user = userId = @"Facebook:1234abcd",
mobileServiceAuthenticationToken = @"1234abdc567efg"
我目前正试图检索用户的名字和姓氏,因为我拥有的令牌不是 Facebook 登录令牌,而是用于通过我的 Azure 后端进行身份验证的令牌。无论如何都可以在客户端获取用户名而不必打开另一个 facebook 登录窗口? (可能使用 Graph API)我找到了一种在自定义 API 中获取服务器端信息的方法,但是我希望在将用户信息保存到服务器之前将所有这些都弄清楚客户端。 (见here)
编辑:我找不到在 iOS 中使用的等效 user.getIdentities,它提供 Facebook 身份验证令牌以与 Graph API 一起使用。
【问题讨论】:
【参考方案1】:如您所见,客户端 SDK 的用户对象仅包含移动令牌。您需要一个单独的服务器 API 来公开客户信息 - 服务器 SDK 可以访问更多信息。您可以将其作为 API 执行,当用户第一次登录时,您可以将他们的信息保存到表中,或者您可以创建一个每次都查询 Facebook 的 API。
Carlos 在Getting user information on Azure Mobile Services 上发表了一篇很棒的博文。
【讨论】:
【参考方案2】:在不使用服务器的情况下执行此操作的最佳方法是使用客户端定向登录而不是服务器。
这允许您在客户端使用 FB 的 SDK 通过他们的工具登录,根据需要获取用户名等,然后通过发送您的 FB 令牌登录到您的移动服务。
[client loginWithProvider:@"microsoftaccount"
token:@@"access_token" : <fb token>
completion:^(MSUser *user, NSError *error)
];
【讨论】:
以上是关于通过 facebook ios SDK 结合 Azure 移动服务获取名字和姓氏的主要内容,如果未能解决你的问题,请参考以下文章
Facebook通过iOS中的Facebook SDK通过应用程序登录?
通过 Facebook iOS SDK 检索 Facebook 好友列表
通过Facebook Native app - iOS Facebook SDK分享时,“引用”缺失
通过 CocoaPods 安装 Facebook iOS SDK