【问题标题】:Facebook-unity-sdk not using iOS native SSOFacebook-unity-sdk 不使用 iOS 原生 SSO
【发布时间】:2015-01-24 18:16:09
【问题描述】:

我正在使用 Unity 4.6 和 Facebook Unity SDK 6.0。

在 Android 上看起来不错,但在 iOS 上我似乎没有使用原生 Facebook SSO。它不断恢复到基于浏览器的登录,这确实散发出一种不专业的氛围。

我已经在十种不同的设备上对此进行了测试,所有设备都使用了开发者证书。

我已经查看了以下清单:

  • XCode 运行时未收到任何错误或日志表明有任何错误,但仍使用旧的“基于浏览器”的登录解决方案。
  • 这也适用于我使用 SDK 中包含的示例场景。
  • 该应用已在 Facebook 开发者控制台中启用 SSO,并且捆绑包 ID 匹配。
  • FBXXXXXXXXX URL 场景位于 info.plist 中,在 XCode 中显示得很好。
  • info.pList 中的 FacebookAppID 键也已设置,并使用数字 facebook 应用程序 ID。
  • 在 facebook 中,该应用对公众开放,具有所需的联系电子邮件,并配置了 iOS 捆绑包。

我已尝试使用开发人员、管理员和“陌生人”帐户,但没有一个可以获取原生 iOS facebook 登录。

有人遇到过吗?我能找到的大多数类似案例都有一年多的历史,并不真正适用于此。

【问题讨论】:

  • 你是如何调用 FB.Login 的?您的应用是否配置为拥有多个 FB 应用 ID?

标签: ios unity3d facebook-unity-sdk


【解决方案1】:

在 Facebook SDK 7.2 中,在 MobileFacebook.cs 中更改 Unity 本身的 shareDialogMode

【讨论】:

  • 我很高兴他们搬走了它 :)
【解决方案2】:

要在 iOS 上获取本机 facebook 登录,请找到文件 FbUnityInterface.mm (Assets/Facebook/Editor/iOS) 并找到方法 -(void)login:(const char *)scope

在这个方法中替换:

[self.session openWithBehavior:FBSessionLoginBehaviorWithFallbackToWebView]

用这个:

[self.session openWithBehavior:FBSessionLoginBehaviorUseSystemAccountIfPresent]

Facebook Unity SDK 默认不使用原生 iOS 日志记录行为,这有点奇怪。

还有一些FBSessionLoginType 行为,在FBSession.h 中描述,也可以在 FacebookSDK 中找到:

typedef enum {
    /*! Attempt Facebook Login, ask user for credentials if necessary */
    FBSessionLoginBehaviorWithFallbackToWebView      = 0,
    /*! Attempt Facebook Login, no direct request for credentials will be made */
    FBSessionLoginBehaviorWithNoFallbackToWebView    = 1,
    /*! Only attempt WebView Login; ask user for credentials */
    FBSessionLoginBehaviorForcingWebView             = 2,
    /*! Attempt Facebook Login, prefering system account and falling back to fast app switch if necessary */
    FBSessionLoginBehaviorUseSystemAccountIfPresent  = 3,
    /*! Attempt only to login with Safari */
    FBSessionLoginBehaviorForcingSafari = 4,
} FBSessionLoginBehavior;

【讨论】:

  • 这不再是正确答案,Facebook 将其移至 C# 类
  • 很高兴知道 - 我的回答是在提出该问题时唯一可行的解​​决方法 - 因此对于该 FB SDK 版本是正确的。
猜你喜欢
  • 1970-01-01
  • 2013-11-20
  • 1970-01-01
  • 2012-05-24
  • 1970-01-01
  • 2017-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多