0

重要的是要注意,我以前从未创建过 Facebook 应用程序,也不知道从哪里开始 - 假设答案将在开放图形分步教程中给出。

我到了第 4 步,得到了现在著名的“发生错误”对话框——这可能是由于代码示例的一个或多个误解和问题。我很欣赏一些清晰度,因为某些“假设”可能是我所有问题的根源

为了节省时间,我跳到教程的末尾并下载了示例代码并将其用于我的最终代码(object.html)

  1. 应用程序域和站点 URL - 你的教程说选择网站选项 - 我使用以下应用程序域:

www.teamworks.co.za 和网站网址:www.teamworks.co.za/grow/object.html

这意味着我可以独立于 facebook 访问该页面,无论我是否登录

问题:这是意图还是应该在 facebook 内部运行?(即我在这里遗漏了什么吗?) 问题:该页面会从我的 Facebook 登录中获取我的用户凭据吗?(当我打开 facebook 并在同一浏览器上登录时 - 但选项卡不同)打开页面的链接?

  1. 图片:这里没有明确的说明来更改示例代码中的图片位置:<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 并且这不是“发生错误”对话框的原因吗?

  1. 下载示例有一个额外的代码,即 <fb:add-to-timeline></fb:add-to-timeline>>注意最后的双>>-我现在删除了它,因为它不在教程中问题:我可以安全地假设删除不是“错误”的原因发生”对话框?

  2. 下载的示例标签: <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>
4

1 回答 1

2

问题:该页面会从我的 Facebook 登录中获取我的用户凭据吗?

不,您必须先让用户自己登录(让他们“连接”到您的应用程序)。您可以FB.login为此使用 JS SDK。

对于您的其余帖子:一次有太多问题。

重要的是要注意我以前从未创建过 Facebook 应用程序

那么您可能不应该立即开始发布 Open Graph 操作,而是首先加深您对用户身份验证和与 Graph API 交互如何工作的了解。做一些简单的事情,用户可以登录并从显示的 Graph API 或其他东西中获取他的个人信息……一旦您了解了这些基本知识,您就可以转到更复杂的主题,例如 Open Graph 操作。

于 2012-08-15T15:22:58.353 回答