使用 Facebook iOS 应用将 Xamarin 应用与 Facebook SSO 集成
Posted
技术标签:
【中文标题】使用 Facebook iOS 应用将 Xamarin 应用与 Facebook SSO 集成【英文标题】:Integrating a Xamarin app with Facebook SSO w/ Facebook iOS App 【发布时间】:2014-02-19 14:04:11 【问题描述】:我正在编写一个 Xamarin ios 应用程序并且在集成 Facebook SSO 时遇到困难,尽管我认为我的问题不一定是特定于 Xamarin 的,只是不了解如何在没有 Facebook iOS SDK 优势的情况下集成 Facebook SSO .
我遵循了各种指南并完成了以下操作:
1) 设置 Facebook 应用程序: a) 添加了与我的应用程序包 ID 匹配的包 ID 的 iOS 平台 b) 启用单点登录
2) 如下设置我的 info.plist:
raw text:
<key>CFBundleDisplayName</key>
<string>[company]</string>
<key>CFBundleIdentifier</key>
<string>com.[company].ios.app</string>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb123490xxx</string>
</array>
<key>CFBundleURLName</key>
<string>com.[company].ios.app</string>
</dict>
</array>
<key>FacebookAppID</key>
<string>123490xxx</string>
<key>FacebookDisplayName</key>
<string>[company] Staging</string>
3) 在我的应用中实现了以下代码:
FacebookLoginButton.TouchUpInside += (sender, e) =>
var urlWithAppProtocol = new NSUrl("fb123490xxx://");
UIApplication.SharedApplication.OpenUrl(urlWithAppProtocol);
;
我还没有重写 AppDelegates 方法(OpenUrl 和 HandleOpenUrl),因为据我所知,这些方法处理传入的重定向到我的应用程序;接下来我会开始工作的。
明确地说,我希望看到的是与此屏幕等效的 FB iOS 应用程序(来自 Mobile Safari)
但是,如果我重定向到: "fb://[appid]" 我被重定向到 FB 应用程序,但只是到新闻提要页面(或我上次使用 FB 应用程序时的任何屏幕)
"fb[appid]://" 我什么也没发生,.OpenUrl() 什么也没做;
“fb://profile/[appid]”作为实验,我得到以下信息(注意“应用程序不适用于您的手机”);这可能是因为您应该将 PageID 与 /profile 一起使用。
我在这里错过了什么?
【问题讨论】:
我对 Mono 一无所知,但调用 URLfb123490xxx:
只会打开您的应用程序。你应该在 Facebook SDK 或 Account store 上调用一些方法来获取你想要的屏幕。
“账户商店”是什么意思?并且调用 Url “fbxxx” 将打开 Facebook 应用程序,而不是我的应用程序?
没有电话 fbxxxxx
其中 xxxx 将是您来自 facebook 的 appId 将打开您的应用程序而不是 facebook 应用程序。账户商店:developer.apple.com/library/ios/documentation/Accounts/…
啊,这些帐户,谢谢 - 但看起来那是用于 iOS 中的 Facebook 内容;我想基本上使用 OAuth,但使用 FB App 而不是 Mobile Safari。因此,如果我 OpenUrl "fb://" 它会转到 facebook - 需要如何更改才能在我的应用页面上打开 FB?
由于我对单点触控的了解为零,我不确定如何做到这一点。通常你只需使用Facebook iOS SDK
【参考方案1】:
好的,最后它只是将fbauth://authorize
与oauth url中的普通查询字符串参数结合使用。重定向网址需要为fbconnect://success
我是通过阅读 FB iOS SDK 的源代码发现的:
https://github.com/keithpitt/DKSocial/blob/72cd77bc15ca1a307b92aff8382f2c71a97da7de/External/FBConnect/Facebook.m
这里可能有一个使用官方 Facebook iOS SDK 的 Xamarin 绑定的课程,该 SDK 提供了此功能。我最终选择了手动路线,因为我从 Facebook .NET SDK 开始,它似乎不提供这种基于应用程序的 SSO 功能。
【讨论】:
嗨,马克,我在使用适用于 iOS 的 FB SDK 时遇到了一些问题。我无法设置“publish_actions”权限。你成功使用 SDK 了吗?以上是关于使用 Facebook iOS 应用将 Xamarin 应用与 Facebook SSO 集成的主要内容,如果未能解决你的问题,请参考以下文章
在 iPhone 应用程序中,如何将照片发布到 Facebook 粉丝页面。在它之前如何喜欢它?使用 facebook-ios-sdk
您可以将 2 个 Facebook 应用程序连接到一个 iOS 应用程序吗?
将 Facebook 登录集成到 iOS iPad 应用程序中
IOS:如何将 UITableView 用作 Facebook 类应用程序的 Newsfeed 视图