2012-06-14 6 views
0

Je commence le développement d'applications Facebook et je suis le didacticiel de l'application Recipe Box sur Facebook.Boîte de recettes Facebook Tutoriel Open Graph

https://developers.facebook.com/docs/opengraph/tutorial/

Je suis coincé sous la rubrique « Publier une action » où il est dit « Maintenant, cliquez sur le bouton de cuisson! » Sur mon site, je clique dessus et peu de temps après, je reçois un message d'erreur disant "Erreur survenue". J'ai suivi les étapes qui m'ont été données, à l'exception de la partie où il est indiqué de cliquer sur le lien "Get Code" à côté de votre action, qui contient des extraits de code que vous pouvez copier dans le terminal et exécuter directement. Je ne savais pas quoi faire avec le code curl ... le tutoriel n'a jamais vraiment dit de faire quoi que ce soit avec.

Voici le code que j'utilise en ce moment. J'ai un fichier recipe.html et un objectpage.html, qui est l'endroit où je clique sur le bouton de cuisson et obtenir l'erreur. Merci d'avance pour toute aide que vous pouvez me donner!

recipe.html:

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" 
     xmlns:fb="https://www.facebook.com/2008/fbml"> 
<head> 
    <title>OG Tutorial App</title> 
</head> 
<body> 
    <div id="fb-root"></div> 
    <script> 
    window.fbAsyncInit = function() { 
     FB.init({ 
     appId  : '266155930158877', // App ID 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
     }); 
    }; 

    // 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)); 
    </script> 

    <fb:login-button show-faces="true" width="200" max-rows="1" scope="publish_actions"> 
    </fb:login-button> 

    <h3>Stuffed Cookies</h3> 
    <p> 
    <img title="Stuffed Cookies" 
     src="http://fbwerks.com:8000/zhen/cookie.jpg" 
     width="550"/> 
    </p> 
</body> 
</html> 

objectpage.html

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" 
     xmlns:fb="https://www.facebook.com/2008/fbml"> 
<head prefix="og: http://ogp.me/ns# rk_recipebox: 
        http://ogp.me/ns/apps/rk_recipebox#"> 
    <title>OG Tutorial App</title> 
    <meta property="fb:app_id" content="266155930158877" /> 
    <meta property="og:type" content="rk_recipebox:recipe" /> 
    <meta property="og:title" content="Stuffed Cookies" /> 
    <meta property="og:image" content="http://fbwerks.com:8000/zhen/cookie.jpg" /> 
    <meta property="og:description" content="The Turducken of Cookies" /> 
    <meta property="og:url" content="http://fbwerks.com:8000/zhen/cookie.html"> 

    <script type="text/javascript"> 
    function postCook() 
    { 
     FB.api(
     '/me/rk_recipebox:cook', 
     'post', 
     { recipe: 'http://fbwerks.com:8000/zhen/cookie.html' }, 
     function(response) { 
      if (!response || response.error) { 
       alert('Error occured'); 
      } else { 
       alert('Cook was successful! Action ID: ' + response.id); 
      } 
     }); 
    } 
    </script> 
</head> 
<body> 
    <div id="fb-root"></div> 
    <script> 
    window.fbAsyncInit = function() { 
     FB.init({ 
     appId  : '266155930158877', // App ID 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
     }); 
    }; 

    // 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)); 
    </script> 

    <h3>Stuffed Cookies</h3> 
    <p> 
    <img title="Stuffed Cookies" 
     src="http://fbwerks.com:8000/zhen/cookie.jpg" 
     width="550"/> 
    </p> 

    <br> 
    <form> 
    <input type="button" value="Cook" onclick="postCook()" /> 
    </form> 
</body> 
</html> 

page se trouve ici:

http://glutendatabase.com/objectpage.html

Répondre

1

yo ur objectpage.html fichier remplacer la fonction postCook() avec celui-ci. Cela vous dira au moins quelle est votre erreur.

J'imagine que vous essayez toujours de POSTER l'URL donnée à titre d'exemple, et non l'URL de votre page Web (voir la ligne 6 ci-dessous). Si votre serveur est LOCALHOST, cela provoquera également une erreur. Vous devez être sur un serveur nommé.

function postCook() 
{ 
    FB.api(
    '/me/rk_recipebox:cook', 
    'post', 
    { recipe: 'http://YOURSERVER/objectpage.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); 
     } 
    }); 
} 
+0

Merci beaucoup! C'était le problème. Je n'avais pas ma propre URL dans la fonction postCook(), ET je n'avais pas ma propre URL dans la balise og: url meta en haut. Maintenant, je peux enfin continuer avec le tutoriel. Merci encore! –