The Facebook application works only for the administrator. What for?

I created a facebook application. From my site, users can log in using their facebook account. After successfully logging in, the facebook javascript API that I use will output the URL for the new user with their permission.

The problem is that this works great when I use my account to login from a website and I could see the message in my news feed.

When you log in with someone else’s account, the message does not appear in the news feed.

Note. I am the only administrator of the facebook application and Sandbox mode is disabled.

Are there any settings that I need to make this function work for all users?

Used code:

//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(); }); }); } 
+4
source share
1 answer

Try to clear cookies from logging in to your administrator account and to your dev account, or even better just test using different browsers ( chrome profiles are great for this)

The cookie created for the user facebook js sdk (fbsr_ {APP_ID}) is used to first load the next user login and twists things a bit to load the first page when using it outside the canvas (on the site, as you mentioned). Facebook is not fully optimized for using multiple accounts in one browser, as developers often use them. It is very possible that because of this, he is trying to publish as the wrong user and cause an error. This is my best guess, without any additional information.

+1
source

Source: https://habr.com/ru/post/1479866/


All Articles