2012-03-06 20 views
0

私のfbアプリからwallpostを作ろうとしています。私のコード(荒井)はエニーエロスを与えることはありませんが、それは壁に何かを公開することはありません。誰か助けてくれますか? = PWallpostに問題がありますか?

アプリケーションファイル(index.phpを):サーバー(channel.php)で

<!DOCTYPE html> 
<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
<head> 
</head> 
<body> 

<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : '1234567890', // App ID 
     channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 

    // Additional initialization code here 
    }; 

    // Load the SDK Asynchronously 
    (function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
    }(document)); 
</script> 



<a href="#" onClick="postToFacebook()">Post to Facebook</a> 

<script> 
function postToFacebook() { 
    var body = 'Reading Connect JS documentation'; 

    FB.api('/me/feed', 'post', { body: body, message: 'My message is ...' }, function(response) { 
     if (!response || response.error) { 
     alert('Error occured'); 
     } else { 
     alert('Post ID: ' + response); 
     } 
    }); 
} 
</script> 

<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId : 'YOUR APP ID GOES HERE', 
     status : true, // check login status 
     cookie : true, // enable cookies to allow the server to access the session 
     xfbml : true // parse XFBML 
    }); 
    }; 

    (function() { 
    var e = document.createElement('script'); 
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
    e.async = true; 
    document.getElementById('fb-root').appendChild(e); 
    }()); 
</script> 

</body> 
</html> 

とチャンネルファイル:

<?php 
$cache_expire = 60*60*24*365; 
header("Pragma: public"); 
header("Cache-Control: max-age=".$cache_expire); 
header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$cache_expire) . ' GMT'); 
?> 
<script src="//connect.facebook.net/en_US/all.js"></script> 
+0

は、私はどのようにいくつかの簡単な例を見てみたい助けを あなたはFB.loginなどを使用することによってそれを行うことができますアプリケーションからwallpostを作ります: – WKoA

+0

postコマンドからのコールバックの応答をconsole.dirにすれば、何が表示されますか? – DMCS

答えて

1

なぜあなたは二回Facebookのスクリプトを初期化しようとしています?: ) 作業コードの例を以下に示します。 How to get FB.api('/me/feed', 'post', ... to work? マインドあなたはFB.apiを呼び出す前にまずアプリケーションを認証する必要があります。 http://developers.facebook.com/docs/reference/javascript/FB.login/ と、ユーザーが実際にFBgetLoginStatus()を使用して、あなたのアプリに接続しているかどうかを確認: http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/ ホープこれは

+0

なぜchecユーザーはFacebookのアプリ内でステータスを接続する必要がありますか?なぜならユーザーがFBにログインしていなければ、明らかに何もFBに公開できないからです。 – WKoA

+0

仕事がありません:/ 壁に何かを投稿する作業コードを教えてください。これはwallpostについての例ですので、私自身のアプリケーションを開発することができます:/ wallpostがPHPやJSになっても完全なコードが役立つかどうかは関係ありません。 – WKoA

+0

あなたのページがFacebookの中にあるという単なる事実は、ユーザーが記事を公開する権限を与えたことを意味するものではありません:)あなたはそれを行う必要があります。https://developers.facebook.com/ docs/authentication / –