Javascript fb.api;来自非应用程序开发人员的帖子';s A计数

Javascript fb.api;来自非应用程序开发人员的帖子';s A计数,javascript,facebook,facebook-graph-api,facebook-login,Javascript,Facebook,Facebook Graph Api,Facebook Login,我创建了一个简单的应用程序,它使用FB Javascript SDK在FB上发布我网页文本区域中给出的内容。 我正在使用fb.api来实现这一点,问题是它只适用于我的用户id(我从中创建了应用程序)。对于其他ID,它不起作用。有人能帮忙吗?我希望其他用户也能够在登录后在他们的墙上张贴 <html> <head></head> <body> <div id="fb-root"></div> <label&

我创建了一个简单的应用程序,它使用FB Javascript SDK在FB上发布我网页文本区域中给出的内容。 我正在使用fb.api来实现这一点,问题是它只适用于我的用户id(我从中创建了应用程序)。对于其他ID,它不起作用。有人能帮忙吗?我希望其他用户也能够在登录后在他们的墙上张贴

<html>
<head></head>
<body>
    <div id="fb-root"></div>
    <label>Give your message here:</label><br/>
    <textarea id = "ta"></textarea><br/>
    <label>Any image?</label><br/>
    <textarea id = "pic"></textarea><br/>
    <label>Any link?</label><br/>
    <textarea id = "ta_link"></textarea><br/>
    <button onclick = "testAPI()">Click To Post!</button>
    <script>
      // Additional JS functions here
      window.fbAsyncInit = function() {
        FB.init({
          appId      : 'AppID', // App ID
          channelUrl : 'http://127.0.0.1/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 init code here
        FB.getLoginStatus(function(response) {
            if (response.status === 'connected') {
                alert("Connected");
                //testAPI();
            } else if (response.status === 'not_authorized') {
                // not_authorized
                login();
            } else {
                // not_logged_in
                login();
            }
        });
        };
         function login() {
            FB.login(function(response) {
                if (response.authResponse) {
                    //testAPI();
                } else {
                    alert("Can't connect")
                }
            });
        }
      function testAPI() {
          FB.getLoginStatus(function(response) {
            if (response.status === 'connected') {
          var tbmsg = document.getElementById("ta").value;
           var tbimg = document.getElementById("pic").value;
           var tblink = document.getElementById("ta_link").value;
          var wallPost = {};
        wallPost['message'] = tbmsg;
        if(tbmsg == "")
        {
            alert("Message box can't be empty")
        }

        if(tbimg)
        {
            wallPost['picture'] = tbimg;
        }
        if(tblink)
        {
            wallPost['link'] = tblink;
        }

        FB.api('/me/feed', 'post', wallPost , function(response) {
        if (!response || response.error) {
        alert('Error occured');
        } else {
        alert("Posted");
        }

    });
}
else
{
    alert("Login first")
}

请在此处留言:

有图像吗?

有链接吗?

点击发布! //这里有额外的JS函数 window.fbAsyninit=函数(){ FB.init({ appId:'appId',//应用程序ID 频道URL:'http://127.0.0.1/channel.html“,//通道文件 状态:true,//检查登录状态 cookie:true,//启用cookie以允许服务器访问会话 xfbml:true//解析xfbml }); //这里有额外的初始化代码 FB.getLoginStatus(函数(响应){ 如果(response.status===“已连接”){ 警报(“已连接”); //testAPI(); }else if(response.status===“未授权”){ //未经授权 登录(); }否则{ //未登录 登录(); } }); }; 函数登录(){ FB.登录(功能(响应){ if(response.authResponse){ //testAPI(); }否则{ 警报(“无法连接”) } }); } 函数testAPI(){ FB.getLoginStatus(函数(响应){ 如果(response.status===“已连接”){ var tbmsg=document.getElementById(“ta”).value; var tbimg=document.getElementById(“pic”).value; var tblink=document.getElementById(“ta_link”).value; var wallPost={}; wallPost['message']=tbmsg; 如果(tbmsg==“”) { 警报(“消息框不能为空”) } 如果(待定) { 墙贴['picture']=tbimg; } 如果(tblink) { 墙柱['link']=tblink; } api('/me/feed',post',wallPost,函数(响应){ 如果(!response | | response.error){ 警报(“发生错误”); }否则{ 警报(“已发布”); } }); } 其他的 { 警报(“先登录”) }
})); }

//异步加载SDK

您可能必须在您的FB应用程序中正确设置域名。但如果我在本地主机上怎么办?给定域名,其他用户是否可以在其墙上发布?请确保您的应用程序不处于
沙箱模式
您可以在主机文件中添加主机名,这样您就可以使用正确的域名在本地主机上测试应用程序。这听起来可能太琐碎了,但您能告诉我如何做到吗?我只有一个HTML文件(包含上述代码)。
      // Load the SDK Asynchronously
    </script>
</body>