重要的是要注意,我以前从未创建过 Facebook 应用程序,也不知道从哪里开始 - 假设答案将在开放图形分步教程中给出。
我到了第 4 步,得到了现在著名的“发生错误”对话框——这可能是由于代码示例的一个或多个误解和问题。我很欣赏一些清晰度,因为某些“假设”可能是我所有问题的根源
为了节省时间,我跳到教程的末尾并下载了示例代码并将其用于我的最终代码(object.html)
- 应用程序域和站点 URL - 你的教程说选择网站选项 - 我使用以下应用程序域:
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。请检查给定 url 中带有标签 og:image 的所有图像,并确保其符合最低规格。
当我使用自己的图像位置时,调试器不会抱怨,即 mydomain/grow/cookie.jpg(对于两个图像)
问题:因此我可以安全地假设我可以用我自己的替换图像 url 并且这不是“发生错误”对话框的原因吗?
下载示例有一个额外的代码,即
<fb:add-to-timeline></fb:add-to-timeline>
>注意最后的双>>-我现在删除了它,因为它不在教程中问题:我可以安全地假设删除不是“错误”的原因发生”对话框?下载的示例标签:
<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#">
看起来与单击接收对象“获取代码”按钮时生成的标签不同,即<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>