当转到所有社交插件的设置页面时,他们现在使用APP ID提供示例代码。
http://developers.facebook.com/docs/plugins/
Like按钮和其他插件现在需要APP ID吗?如果在使用插件时未包含APP ID,会发生什么?
我查看了Facebook开发者博客并阅读了Like Button Migration。我无法在FB Like Reference或{{3}}中找到答案。
答案 0 :(得分:14)
注意:
这是一个过时的信息,官方Facebook的行为已经改变。
简单来说,答案是否,只需查看以下官方Facebook resource。
注意:要在不需要应用ID的情况下执行此操作,您必须在从Facebook注销时访问上述页面。请看下面的截图。
答案 1 :(得分:3)
正如semsem所说,简单的答案是“不需要它”......有办法让appId与“喜欢”按钮相关联。这是我使用它的经验。我不是Facebook或Open Graph专家,所以YMMV。
为什么我们避免在按钮上使用appId:
我们提供的服务是,我们有一个网站(引擎,就是它),提供向学生(客户)分发在线课程的服务。教师(也是客户)如何使用我们的服务向学生传播课程,可以按照他们的意愿为网站打造品牌,并将他们的域名映射到我们为这些课程提供服务的网站部分。
作为简化示例:我们从http://courses.example.com/instructor_name投放,但我们希望学生通过http://www.instructors-domain.com/访问内容。任何课程都是基本URL以外的子目录。
将“喜欢”按钮与我们的Facebook App相关联不允许任何跨域恶作剧。虽然有充分理由这样做,但它并不适用于我们公司和产品发展的地方。所以我们需要找到一种解决方法。
我们想让人们“喜欢”一门课程,让“故事”指向网络上的适当位置,并获得一些自定义(例如“NAME喜欢在线课程在FBAppName上“)。我们基本实现了这一点在我们的演变过程中,我们失去了一些我们认为可接受的功能。
缺少
我使用Facebook“喜欢”按钮的iframe版本,由相应的Facebook开发者页面指定(对于链接,请参阅semesm的链接答案,我没有代表)。我拿了他们的代码片段并手动删除了iframe的src中的appId查询字符串。
在“喜欢”页面本身(与“喜欢”按钮相同的页面)中,我使用了指定appId的Open Graph元标记包括。 (指定了这些标签:fb:app_id,og:type,og:url,og:site_name,og:title,og:description,og:image。)
og:type是我们的'namespace:app_custom_object_name'形式的自定义类型。
方法失败
我的第一次尝试是使用我理解的首选方法,即开发人员“喜欢按钮”页面的“获取代码”部分中的“HTML5”标签。我试过他们的方法从适当的地方剥离appId。事实证明这种方法无效。
如果域 与Facebook应用中的不匹配,则不会有“喜欢”按钮。
如果域 匹配,则会显示“赞”按钮。但是,实际上“喜欢”某事需要3次点击。第一次点击将“竖起大拇指喜欢”图标更改为普通锚点,其中一个单词没有明显意义(我忘记了单词是什么)。第二次单击将显示使用我们的应用程序的登录/授权窗口。第三个实际上提出了现代花哨的“喜欢”框,你可以输入评论。我没有找到解决此问题的方法。
请注意,当我在适当的域中使用此方法指定appId时,它可以正常工作(尽管与我们期望的行为不一致)。
我没有尝试“喜欢按钮”页面的“获取代码”部分中的其他两个选项。
知情猜测和谣言
在我的研究中,我的总体印象是需要appId才是Facebook未来的发展方向。谁知道旧的方式是否会被折旧,可能永远不会,尽管我没有在文档中找到任何关于这种“遗留”行为的内容。这对我来说很有意义,他们的新产品和这种方法可用的高级跟踪。
我看到过这样的建议:以这种方式使用的“喜欢”类似于二等公民......在某些方面被视为劣等。在我自己的实验中,我发现完全指定的appId(在“like”按钮本身)中的行为与部分指定的appId不同,更易于访问和可预测(在我的有限Facebook测试中的Open Graph查询和可见性方面) 。 (同样,我没有找到关于此的可靠文档,也没有尽力完全解决这些差异。)
这个信息可以帮助其他人。祝你好运!
答案 2 :(得分:3)
所以,我只是尝试了sємsєм方法,正如评论所说:Facebook希望您登录以获取代码,如果您有应用程序,则必须选择一个。
但如果你不这样做,它会为你提供一个没有任何应用程序参考的代码。
因此,当您获得代码时 - 无论您选择任何应用程序 - ,您只需要删除.js URL(&appId=##############
)中的appId参数,并获得(对于最新的HTML5代码,第6个线):
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
div元素的代码不会改变。
答案 3 :(得分:3)
我只是在没有appID的iframe代码中使用网址代码,并且它可以连接起作用,
这是一个例子:
<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>
答案 4 :(得分:3)
根据Facebook's Social Plugins FAQ
- Web:如果您在网络上使用社交插件,则无需创建用于集成社交插件的Facebook应用程序。
- iOS / Android:如果您在iOS或Android应用中使用社交插件,则需要创建一个Facebook应用并将其与应用标识符绑定。
似乎官方的答案是它们只是iOS / Android所必需的。