33

当转到所有社交插件的设置页面时,它们现在提供使用 APP ID 的示例代码。

http://developers.facebook.com/docs/plugins/

Like Button 和其他插件现在需要 APP ID 吗?如果在使用插件时不包含 APP ID 会怎样?

我查看了 Facebook 开发人员博客并阅读了有关Like Button Migration的信息。无论是在那里还是在FB Like Reference中,我都无法找到一个直接的答案。

4

5 回答 5

14

注意:

这是一个过时的信息,官方facebook的行为已经改变。

很简单,答案是否定的,看看下面的官方Facebook 资源

注意:要做到这一点不需要应用程序ID,您必须在退出Facebook时访问上述页面。看下面的屏幕截图。

在此处输入图像描述

于 2012-11-29T21:41:06.443 回答
3

所以,我只是尝试了 sємsєм 方法,正如评论所说:Facebook 想让你登录以获取代码,如果你有一个应用程序,你必须选择一个。
但如果你不这样做,它会给你一个没有任何应用参考的代码。

所以当你得到一个代码时——无论你选择什么应用程序——你只需要删除 .js URL ( &appId=##############) 中的 appId 参数,你就得到了(对于最新的 HTML5 代码,第 6 行):

js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";

div 元素的代码不会改变。

于 2014-01-10T14:22:27.683 回答
3

我只是在没有 appID 的 iframe 标记内使用 URL 代码,它可以正常工作,

这是一个例子:

<iframe src="http://www.facebook.com/plugins/like.php?href=<%=request.original_url%>&width&layout=button_count&action=like&show_faces=false&share=false&height=35&appId=" frameBorder="0" width="150" height="25">
</iframe>
于 2014-05-26T22:37:54.393 回答
3

正如 semsem 所说,简单的答案是“不,它不是必需的”......有一些方法可以让 appId 与“like”按钮相关联。这是我的工作经验。我不是 Facebook 或 Open Graph 专家,所以 YMMV。

为什么我们避免在按钮上使用 appId:

我们正在提供一项服务,其中我们有一个网站(可以说是引擎),该网站提供向学生(客户)分发在线课程的服务。使用我们的服务向学生传播课程的讲师(也是客户)可以根据自己的意愿为网站打上烙印,并将他们的域映射到我们网站上为这些课程提供服务的部分。

作为一个简化的示例:我们从http://courses.example.com/instructor_name提供服务,但我们希望学生通过http://www.instructors-domain.com/访问内容。任何课程都将是基本 URL 之外的子目录。

将“赞”按钮与我们的 Facebook 应用程序相关联,不允许任何跨域恶作剧。虽然这样做有正当理由,但它不适用于我们公司所处的位置和产品发展。所以我们需要找到一种解决方法。

我们想让人们“喜欢”一门课程,让“故事”指向网络上的适当位置,以及进行一些自定义(例如“NAME 喜欢 FBAppName 上的在线课程”)。我们基本上做到了这一点。我们失去了一些我们认为在我们进化的这一点上可以接受的功能。

它的短处

我使用了 Facebook“like”按钮的 iframe 版本,由相应的 Facebook 开发人员页面指定(有关链接,请参阅 semesm 对链接的回答,我没有代表)。我拿了他们的代码片段并手动删除了 iframe src 中的 appId 查询字符串。

在“喜欢”页面本身(与“喜欢”按钮相同的页面)中,我使用了 Open Graph 元标记,包括指定 appId。(这些标签被指定:fb:app_id、og:type、og:url、og:site_name、og:title、og:description、og:image。)

og:type 是我们的自定义类型,形式为“namespace:app_custom_object_name”。

失败的方法

我的第一次尝试是使用我理解的首选方法,即开发人员“like-button”页面的“Get Code”部分中的“HTML5”选项卡。我尝试了他们的方法从适当的位置剥离 appId。这种方法被证明是无效的。

如果域与 Facebook 应用程序中的域匹配,则不会有“喜欢”按钮。

如果域匹配,则会出现“喜欢”按钮但是,实际“喜欢”某些东西需要点击 3 次。第一次单击将“赞许”图标更改为普通锚点,其中包含一个没有明显意义的单词(我忘记了单词是什么)。第二次单击将打开登录/授权窗口以使用我们的应用程序。第三个实际上提出了现代花哨的“喜欢”框,您可以在其中输入评论。我没有找到解决这种行为的方法。

请注意,当我以这种方法在适当的域上指定 appId 时,它会按预期工作(尽管与我们期望的行为不一致)。

我没有在“like-button”页面的“Get Code”部分尝试其他两个选项。

知情的猜测和谣言

在我围绕这方面的研究中,我的总体印象是要求 appId 是 Facebook 未来的发展方向。谁知道旧方法是否会被贬值,可能永远不会,尽管我在文档中没有发现任何关于这种“遗留”行为的内容。这对我来说是有意义的,因为他们提供的新产品和这种方法可用的高级跟踪。

我看到有人认为以这种方式使用的“点赞”类似于二等公民……在某些方面被视为劣等公民。在我自己的实验中,我发现完全指定的 appId(在“喜欢”按钮本身中)的行为与部分指定的 appId 不同,并且更易于访问和可预测(就 Open Graph 查询和我有限的 Facebook 测试的可见性而言) . (同样,我没有找到关于这方面的可靠文档,也没有努力完全理解这些差异。)

愿此信息对其他人有所帮助。祝你好运!

于 2013-12-20T22:19:52.347 回答
3

根据Facebook 的社交插件常见问题解答

  • 网络:如果您在网络上使用社交插件,则无需创建 Facebook 应用程序来集成社交插件。
  • iOS/Android:如果您在 iOS 或 Android 应用程序中使用社交插件,您需要创建一个 Facebook 应用程序并将其与您的应用程序标识符相关联。

似乎官方的答案是它们仅适用于 iOS/Android。

于 2016-12-14T21:53:53.127 回答