Facebook上传照片到页面
问题描述:
我管理我的Facebook页面,我想上传照片到我的页面。我获得了长时间的令牌,并且还给了我的应用权限manage_page
。我已经下载了SDK并将其添加到了PHP页面中。我现在有下面的事情该怎么做?Facebook上传照片到页面
<?php
session_start();
require_once 'facebook-php-sdk-v4-5.0.0/src/Facebook/autoload.php';
$fb = new Facebook\Facebook([
'app_id' => 'my-app-id',
'app_secret' => 'my-app-secret',
'default_graph_version' => 'v2.5',
]);
$accessToken = "Here long lived token generated from graph API";
$response = $fb->post(); //which method should I use ?
我很困惑在这一点上。 :/ 任何帮助,将不胜感激。 :)
谢谢!
答
这是Javascipt,但我认为它可能会有用,如果您想将照片发布到特定相册,则user_photos允许您执行此操作。
试试这个:
function loginFacebook() {
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) {
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
PostToFB(uid, accessToken);
} else {
alert('User did not fully authorize.');
}
}, {
scope: 'public_profile,publish_actions,publish_pages,manage_pages,user_photos'
});
} else {
// the user isn't logged in to Facebook.;
FB.login(function(response) {
current_login_status = response.status;
if (response.authResponse) {
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
PostToFB(uid, accessToken);
} else {
alert('User cancelled login or did not fully authorize.');
}
}, {
scope: 'public_profile,publish_actions,publish_pages,manage_pages,user_photos'
});
}
});};
而且PostToFB:
function PostToFB(uid, accessToken) {
// Do something with the response
var page_id = "YOUR ID PAGE";
FB.api(
'/' + uid + '/accounts',
function(returnData) {
var page_accessToken = "";
//Search on facebook pages from logged user
for (var x = 0; x < returnData.data.length; x++) {
if (page_id == returnData.data[x].id) {
page_accessToken = returnData.data[x].access_token;
}
}
var linkImage = "YOUR LINK";
var datasend = {
access_token: page_accessToken,
message: "MY MESSAGE",
url: linkImage
};
FB.api(
'/' + page_id + '/photos',
'POST',
datasend,
function(response) {
if (response && !response.error) {
var postId = response.id;
alert("Thank you");
} else {
alert("Error");
}
}
);
}
);};
而且让你的Facebook页面ID,你应该做这样的事情:
FB.login(function(response) {
FB.api('/me/accounts', function(apiresponse) {
var data = apiresponse['data'];
var ids = new Array();
for (var i = 0; i < data.length; i++) {
console.log(data[i].id);
}
});}, {scope: 'manage_pages'});
如果需要更多的帮助评论
Regards
https://developers.facebook.com/docs/graph-api/reference/page/photos/#Creating,https://developers.facebook.com/docs/php/howto/example_upload_photo – CBroe