Open Graph Tutorial假设?和误解?导致“错误发生”?

时间:2012-08-15 13:01:05

标签: opengraph

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

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

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

  1. 应用域和网站网址 - 您的教程说选择网站选项 - 我在应用领域使用了以下内容:
  2. 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" />
    2. 或在这里:

      <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(对于两个图像)

      问题:因此,我可以安全地假设我可以用自己的图像替换图像网址吗?这不是“发生错误”对话框的原因吗?

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

      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#"> 看起来与点击recepie对象“获取代码”按钮时生成的那个不同,即 <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# groworganic: http://ogp.me/ns/fb/groworganic#"> 问题:哪个使用正确?

      3. 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>
        

1 个答案:

答案 0 :(得分:2)

  

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

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

对于您的其他帖子:一次性问题太多。

  

值得注意的是,我之前从未创建过Facebook应用程序

然后,您可能不应该立即开始发布Open Graph操作,而是加深您对用户身份验证和与Graph API交互的方式的了解。做一些简单的事情,用户可以登录并从显示的图谱API中获取他的个人信息......一旦你理解了这些基本知识,你就可以转向更复杂的主题,比如Open Graph行动。