asp.net Facebook应用程序只为管理员工作,为什么?

ghhaqwfi  于 2023-01-14  发布在  .NET
关注(0)|答案(3)|浏览(94)

我已经创建了一个facebook应用程序。从我的网站用户可以登录使用他们的facebook帐户。一旦他们登录成功,我使用的facebook javascript API将发布的URL到用户的newfeed与他们的许可。
问题是,当我用我的帐户从网站登录时,这是完美的工作,我可以在我的新闻提要中看到帖子。
当使用其他人的帐户登录时,在他们的新闻源中看不到该帖子。
注意:我是Facebook应用程序的唯一管理员,沙箱模式被禁用。
是否需要进行任何设置,以使此功能适用于所有用户?
所用代码:

//Get values from hidden field
var appid = document.getElementById("appid").value;
var message = document.getElementById("message").value;
var link = document.getElementById("link").value;
var name = document.getElementById("name").value;
var picture = document.getElementById("picture").value;
var description = document.getElementById("description").value;
var Post_to_fb = document.getElementById("Post_to_fb").value;

var Authenticated = "";
// 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));

//Init the SDK upon load
window.fbAsyncInit = function () {
    FB.init({
        appId: appid, // App ID
        channelUrl: '//' + window.location.hostname + '/channel', // Path to your Channel File
        status: true, // check login status
        cookie: true, // enable cookies to allow the server to access the session
        xfbml: true  // parse XFBML 
    });


    // listen for and handle auth.statusChange events
    FB.Event.subscribe('auth.statusChange', function (response) {
        if (response.authResponse) {
            // user has auth'd your app and is logged into Facebook
            var uid = "http://graph.facebook.com/" + response.authResponse.userID + "/picture";
            FB.api('/me', function (me) {
                document.getElementById('auth-displayname').innerHTML = me.name;
                document.getElementById('profileImg').src = uid;
            })
            document.getElementById('auth-loggedout').style.display = 'none';
            document.getElementById('auth-loggedin').style.display = 'block';

            var e = document.getElementById("ctl00_cphRightControls_FaceBookPlugin_ddlSocialSwitch");
            var Social_switch = e.options[e.selectedIndex].text;

            //Post to FB only if Social switch is ON
            if (Social_switch == "on") {
                //Post to FB only for Main URL and not when clicking the internal links
                if (Post_to_fb == "True") {

                var opts = {
                    message: message,
                    link: link,
                    name: name,
                    picture: picture,
                    description: description 
                };

                FB.api('/me/feed', 'post', opts, function (response) {
                    if (!response || response.error) {
//                        alert('Posting error occured');
                    }
                    else {
//                        alert('Success - Post ID: ' + response.id);
                    }
                }); 
               } 
           } 

        } else {
            // user has not auth'd your app, or is not logged into Facebook
            document.getElementById('auth-loggedout').style.display = 'block';
            document.getElementById('auth-loggedin').style.display = 'none';
        }

    });
    $("#auth-logoutlink").click(function () {
        FB.logout(function () {
            window.location.reload();
        });
    });
}
myss37ts

myss37ts1#

尝试在退出管理员帐户和登录开发人员帐户之间清除cookie,或者使用不同的浏览器进行测试(chrome profiles非常适合)
facebook js sdk为用户创建的cookie(fbsr_{APP_ID})会在下一次用户登录的第一次加载时出现,并且在画布外使用它时会使第一次页面加载的情况变得有些混乱(在你提到的网站上)。Facebook并没有完全简化在一个浏览器中使用多个账户的流程,开发人员经常使用这些账户。很可能正因为如此,它“他试图张贴作为错误的用户,并导致错误。这是我最好的猜测没有更多的信息。

6ojccjat

6ojccjat2#

在我的例子中,“国家限制”英国是问题所在。关闭后,为了允许所有国家,它与其他帐户一起工作。其次,应用程序必须处于Live模式才能允许公众访问。在Dev模式下,只有管理员和测试用户可以访问。

nwlqm0z1

nwlqm0z13#

很久就解决了(我希望),但我经历了同样的行为,并通过请求public_profile的高级访问权限来修复它。应用程序查看-〉权限和功能
这对我来说并不明显,因为它似乎是根据接口自动授予此访问权限的。
非管理员用户收到的特定错误消息是“功能不可用:此应用当前无法使用Facebook登录,因为我们正在更新此应用的其他详细信息。请稍后再试。”

相关问题