Facebook SDK - iOS - 分享 URL 失败(错误 102)

Posted

技术标签:

【中文标题】Facebook SDK - iOS - 分享 URL 失败(错误 102)【英文标题】:Facebook SDK - iOS - Fail to share URL (Error 102) 【发布时间】:2013-08-30 21:10:21 【问题描述】:

我正在尝试在我的应用程序上集成一个简单的 URL 分享,遵循专门的 Facebook 教程 (link)

在我的应用程序上,我只需单击一个按钮,该按钮会显示一个对话框,我可以在其中输入评论。 这部分工作找到。然而,当我点击“发布”时,我收到以下错误:

Error Domain=com.facebook.Facebook.platform Code=102 “操作无法完成。(com.facebook.Facebook.platform 错误 102。)” UserInfo=0x14dd1a10 error_message=无法验证应用程序,因为应用名称不匹配。请检查对话框配置的应用名称,app_id=000000,error_code=102

(在此消息中,我只是将我从 Facebook 开发者页面获得的 app_id 替换为零。)

在 Facebook 应用设置中,我设置如下:

“显示名称”:与应用名称同名 “捆绑 ID”,字符串由 [[NSBundle mainBundle] bundleIdentifier]; 返回 应用处于“实时”状态(不在沙盒中) “深度链接”和“连接到 FB”:均已激活

当我在 FB 开发页面上保存我的设置时,我收到一条警告说我没有设置 AppStore 标识符(由于我正在开发应用程序,所以它还不可用)。

你能告诉我我做错的小事吗?

提前感谢您的回复。

如有必要,我很乐意为您提供更多信息。

【问题讨论】:

您是否尝试过删除“深层链接”?您不需要选择它。此外,该应用程序可以被沙盒化,您仍然可以测试您的 iPhone 应用程序。 感谢您的提示,但问题是我将 FacebookDisplayName 参数设置为错误的值。 我在 facebook 显示名称中找到了特殊 utf8 字符的解决方案:***.com/questions/22050613/… 在这个问题上花了两天时间后,我的原因是为“图像”提供了不完整的链接。使用 NSURL.path 而不是 NSURL absoluteString,facebook SDK 返回代码 102 我的错误是使用 fileUrlWithPath 而不是字符串 【参考方案1】:

这通常来自您在 .plist 中设置 FacebookDisplayName,但您在此处设置的内容与您在 Facebook 应用设置中的应用名称不匹配。

您在 FacebookDisplayName 中提供的值必须与您在 Facebook 上设置的值一致。

【讨论】:

好的,这就是问题所在!感谢您的帮助! 另外,我使用了一个测试 Facebook 帐户,该帐户未经验证。使用经过验证的帐户,它运行良好! Answer 在 android 集成方面对我很有帮助。 @Ming Li 这绝对是正确答案。确保显示名称中没有特殊字符或标点符号。我删除了一个句号和一个hypen,一切正常。本质上将您的应用程序 FB 显示名称命名为变量...【参考方案2】:

如果出现错误 102,请检查关注

    FacebookDisplayName 在 plist URL Scheme 中设置正确且正确 fbxxxxxxxxxxx添加到plist中 FacebookAppID 在 plist 文件中设置正确 在“状态和审查”部分确保您有“您想将此应用程序及其所有实时功能提供给公众吗?” make 为 YES(默认设置为 No)

【讨论】:

你的回答对我帮助很大,我错过了第 4 种情况,启用它并开始工作,谢谢@mihir mehta 我还需要启用应用程序,如 4)。谢谢! 请注意,答案 #4 是在 Facebook 开发者网站上配置的。该部分的当前名称是“App Review”,问题的当前文本是“Make public?”还是默认设置为No,需要设置为Yes。【参考方案3】:

对我来说,这些解决方案都不起作用。原来我只需要从 info.plist 中删除 facebookDisplayName 记录。奇怪,但它有效

【讨论】:

也为我解决了这个问题,但我仍然无法接受这种解决方法【参考方案4】:

还有一个变音符号的问题,你不能在FacebookDisplayName中使用它...例如č,ž,š等。如果你写的都是没有变音符号,它可以正常工作。

【讨论】:

【参考方案5】:

我同意@user3170877。它不能像日文和韩文一样使用。我建议只使用英语。

【讨论】:

【参考方案6】:

登录 Facebook 开发者帐户并检查状态是在线还是开发中。如果它处于开发中,则将其更改为实时。这对我有用。

【讨论】:

【参考方案7】:

如果其他答案都没有为您解决此问题,最后要检查的一件事是 Facebook 应用设置中的捆绑 ID。 我的 ios 应用程序遇到了这个问题,该应用程序使用不同的包标识符,具体取决于我使用的构建配置。 您可以在 Facebook 应用设置中指定多个 Bundle ID。

【讨论】:

【参考方案8】:

如果您的 Facebook 应用状态为“开发中且不向公众开放”将导致相同的结果。

您可能希望在 Facebook 应用菜单的“应用审核”下将其更改为公开。或者您需要以“Administrators”、“Developers”或“Testers”角色登录 Facebook

【讨论】:

以上是关于Facebook SDK - iOS - 分享 URL 失败(错误 102)的主要内容,如果未能解决你的问题,请参考以下文章

Facebook SDK iOS 的自定义分享、登录按钮

通过 FB SDK for iOS 将视频分享到 facebook

Facebook iOS SDK - 分享用户照片

iOS Facebook SDK 分享照片和从 Facebook 应用程序注销后

在 Facebook iOS SDK 4.4 上分享视频

iOS Facebook sdk 4.0 分享图片