다른 유사한 요청이 많다는 것을 알고 있습니다. 그러나 그 중 어느 것도 내가 찾은 해결책을 제공하지 못합니다. 먼저 제게 PHP 응답을 보내지 마십시오.이 구현을 위해 JavaScript SDK를 사용해야하며 JavaScript로 해결하려고합니다.Javascript SDK를 사용하여 사진을 Facebook의 관리자 페이지로 게시
로그인 한 사용자가 관리자 인 사진을 Facebook 페이지에 게시하려고합니다. 나는 페이지가 access_token이 생각하는 무엇을 얻고있다하지만 여전히 같은 페이지 관리자로 오히려 다음 페이지로 사용자와 사진을 게시 대신이 같은의
:
나는 나는 당신이 페이스 북의 액세스 토큰 디버거에서 여기에서 볼 수 있듯이 내가 올바른 권한 access_token이 페이지를 사용하고 상당히 일정 :
<script>
var current_login_status = "start";
window.fbAsyncInit = function() {
// init the FB JS SDK
FB.init({
appId : 'MY_APP_ID', // App ID from the app dashboard
status : true, // Check Facebook Login status
xfbml : true // Look for social plugins on the page
});
// Additional initialization code such as adding Event Listeners goes here
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
// the user is logged in and has authenticated the app,
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
PostToFB(uid, accessToken);
} else if (response.status === 'not_authorized') {
// the user is logged in to Facebook,
// but has not authenticated the app
FB.login(function(response) {
current_login_status=response.status;
if (response.authResponse) {
window.location.reload(true);
} else {
alert('User did not fully authorize.');
}
}, {scope: 'publish_stream,manage_pages'});
} else {
// the user isn't logged in to Facebook.;
FB.login(function(response) {
current_login_status=response.status;
if (response.authResponse) {
window.location.reload(true);
} else {
alert('User cancelled login or did not fully authorize.');
}
}, {scope: 'publish_stream,manage_pages'});
}
});
};
function PostToFB(uid, accessToken) {
FB.api(
{
method: 'fql.query',
query: 'SELECT page_id, name, page_url FROM page WHERE page_id IN (SELECT page_id FROM page_admin WHERE uid='+ uid+')'
},
function(data) {
// Do something with the response
var page_id = data[0].page_id;
var page_accessToken = ''
FB.api(
'/'+uid+'/accounts',
function(returnData) {
page_accessToken = returnData.data[0].access_token;
}
);
FB.api(
'/'+page_id+'/photos',
'POST',
{
'access_token': page_accessToken,
'message': 'Beer Description',
'url': "IMAGE_URL"
},
function (response) {
if (response && !response.error) {
/* handle the result */
console.log(response);
} else {
console.log(response);
}
}
);
}
);
};
// Load the SDK asynchronously
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
사람이 잘못된 것입니다 볼 수
: 그래서 여기내 코드?
감사합니다. CBroe !! 그랬어. – Tom
tom..mchanged 코드를 알고 있습니다. 작동합니다. –