值得注意的是,我之前从未创建过Facebook应用程序,也不知道从哪里开始 - 假设答案将在开放式图表分步教程中给出。
我到了第4步并得到了现在着名的“错误发生”对话框 - 这可能是由于代码示例中的一个或多个误解和问题。我很欣赏一些清晰,因为某些“假设”可能是我所有问题的根源
为了节省时间,我跳到教程的最后并下载了示例代码并将其用于我的最终代码(object.html)
www.teamworks.co.za和网站网址:www.teamworks.co.za/grow/object.html
这意味着无论是否登录,我都可以独立于Facebook访问该页面
问题:这是意图还是应该在facebook内运行? (也就是我错过了什么?) 问题:页面会从我的Facebook登录信息中获取用户凭据吗? (当我打开facebook并在同一浏览器上登录时 - 但是不同的标签) 问题:我的测试用户如何启动应用程序 - 当我以测试用户身份登录时,我看到该应用程序 - 它有一个设置页面但没有可点击的链接来打开该页面?
<meta property="og:image" content="https://s-static.ak.fbcdn.net/images/devsite/attachment_blank.png" />
或在这里:
<img title="Stuffed Cookies" src="http://fbwerks.com:8000/zhen/cookie.jpg" width="550"/>
除了在最终可下载的代码示例中指出:
<meta property="og:image" content="http://YOUR_URL/cookie.jpg" />
和
<img title="Oreo Stuffed Cookies" src="http://YOUR_URL/cookie.jpg" width="550"/><br />
当我使用提供的图像位置时,我在调试时遇到错误,例如:
Tiny og:image:og:image引用的所有图像在两个维度上必须至少为200px。请检查给定网址中带有标记og:image的所有图像,并确保其符合最低规格。
当我使用自己的图像位置时,调试器不会抱怨,即mydomain / grow / cookie.jpg(对于两个图像)
问题:因此,我可以安全地假设我可以用自己的图像替换图像网址吗?这不是“发生错误”对话框的原因吗?
下载示例有一些额外的代码,即
<fb:add-to-timeline></fb:add-to-timeline>
&GT;
请注意双&gt;&gt;最后 - 我暂时删除了它,因为它没有在教程中介绍
问题:我可以安全地假设删除不是“发生错误”对话框的原因吗?
下载的示例代码:
<head prefix="og: http://ogp.me/ns# og_recipebox: http://ogp.me/ns/apps/YOUR_NAMESPACE#">
这意味着:
<head prefix="og: http://ogp.me/ns# og_recipebox: http://ogp.me/ns/apps/groworganic#">
看起来与点击recepie对象“获取代码”按钮时生成的那个不同,即
<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# groworganic: http://ogp.me/ns/fb/groworganic#">
问题:哪个使用正确?
5.下载的示例具有此脚本标记
<script src="http://connect.facebook.net/en_US/all.js"></script>
我假设替换了教程中的以下代码:
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
问题:这个假设是否正确?
我不再收到错误,但我也没有成功 - 我现在没有得到任何回复 - 但是代码通过了调试测试。
我将不得不重新开始,与此同时我复制了我的代码,希望我能得到上述问题的答案。
下面是我的object.html的代码:
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">
<head prefix="og: http://ogp.me/ns# og_recipebox: http://ogp.me/ns/apps/groworganic#">
<meta property="fb:app_id" content="472670852757244" />
<meta property="og:type" content="groworganic:recepie" />
<meta property="og:title" content="Oreo Stuffed Cookies" />
<meta property="og:image" content="http://www.teamworks.co.za/grow/cookie.jpg" />
<meta property="og:description" content="The Turducken of Cookies" />
<meta property="og:url" content="http://www.teamworks.co.za/grow/object.html"> <script type="text/javascript">
function postCook()
{
FB.api(
'/me/groworganic:cook',
'post',
{ recipe: 'http://www.teamworks.co.za/grow/object.html' },
function(response) {
if (!response) {
alert('Error occurred : No Response');
} else if (response.error) {
alert('Error occurred : ' + response.error);
} else {
alert('Cook was successful! Action ID: ' + response.id);
}
});
}
</script>
</head>
<body>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
appId:'472670852757244', cookie:true,
status:true, xfbml:true, oauth:true
});
</script>
<h3>
<font size="30" face="verdana" color="grey">Stuffed Cookies
</font>
</h3>
<p>
<img title="Oreo Stuffed Cookies" src="http://www.teamworks.co.za/grow/cookie.jpg" width="550"/><br />
</p>
<form>
<input type="button" value="Cook" onclick="postCook()" />
</form>
<fb:activity actions="groworganic:cook"></fb:activity>
</body>
</html>
答案 0 :(得分:2)
问题:该页面会从我的Facebook登录信息中获取用户凭据吗?
不,您必须先自己登录用户(让他们“连接”到您的应用)。您可以使用JS SDK中的FB.login
。
对于您的其他帖子:一次性问题太多。
值得注意的是,我之前从未创建过Facebook应用程序
然后,您可能不应该立即开始发布Open Graph操作,而是加深您对用户身份验证和与Graph API交互的方式的了解。做一些简单的事情,用户可以登录并从显示的图谱API中获取他的个人信息......一旦你理解了这些基本知识,你就可以转向更复杂的主题,比如Open Graph行动。