ИТАК треска ниже в основном работает хорошо, когда эта линия выглядит так:Как загрузить фото на Timeline Facebook Пейджа как самой странице Facebook, а не к корму пользователя
$post_url = '/'.$userPageId.'/feed';
Этот успешно отправляется на страницу Сроки страницы Facebook. Но я хочу, чтобы загрузить фотографию, и когда я изменить эту строку
$post_url = '/'.$userPageId.'/photos';
Это вывешивает фото ... но вывешивает на пользователя поток, а не как Facebook страницу.
Я хочу, чтобы это опубликовать фотографию в Facebook страницу Timeline
[config.php]
<?php
include_once("inc/facebook.php");
##################################
//Call Facebook API
// Required facebook permissions
$fbPermissions = 'publish_stream,manage_pages,photo_upload';
$facebook = new Facebook(array(
'appId' => $appId,
'secret' => $appSecret,
'fileUpload' => true,
'cookie' => true
));
$fbuser = $facebook->getUser();
?>
[process.php]
<?php
include_once("config.php");
if($_POST)
{
//Post variables we received from user
$userPageId = $_POST["userpages"];
$userMessage = $_POST["message"];
if(strlen($userMessage)<1)
{
//message is empty
$userMessage = 'No message was entered!';
}
//HTTP POST request to PAGE_ID/feed with the publish_stream
$post_url = '/'.$userPageId.'/photos';
//posts message on page statues
$msg_body = array(
'source' => '@' . 'test.jpg',
'message' => "yo yo yo",
);
if ($fbuser) {
try {
$postResult = $facebook->api($post_url, 'post', $msg_body);
} catch (FacebookApiException $e) {
echo $e->getMessage();
}
} else {
$loginUrl = $facebook->getLoginUrl(
array('redirect_uri'=>$homeurl,'scope'=>$fbPermissions)
);
header('Location: ' . $loginUrl);
}
//Show sucess message
if($postResult)
{
}
}
?>
[index.php] (для регистрации)
<?php
include_once("config.php");
if ($fbuser)
{
try {
$user_profile = $facebook->api('/me');
//Get user pages details using Facebook Query Language (FQL)
$fql_query = 'SELECT page_id, name, page_url FROM page '
.'WHERE page_id IN (SELECT page_id FROM page_admin WHERE uid='
.$fbuser.')';
$postResults = $facebook->api(
array('method' => 'fql.query', 'query' => $fql_query)
);
} catch (FacebookApiException $e) {
echo $e->getMessage();
$fbuser = null;
}
} else {
//Show login button for guest users
$loginUrl = $facebook->getLoginUrl(
array('redirect_uri'=>$homeurl,'scope'=>$fbPermissions)
);
echo '<a href="'.$loginUrl.
'"><img src="images/facebook-login.png" border="0"></a>';
$fbuser = null;
}
if($fbuser && empty($postResults))
{
/*
if user is logged in but FQL is not returning any pages, we need to make
sure user does have a page OR "manage_pages" permissions isn't granted yet
by the user. Let's give user an option to grant permission again.
*/
$loginUrl = $facebook->getLoginUrl(
array('redirect_uri'=>$homeurl,'scope'=>$fbPermissions)
);
echo '<br />Could not get your page details!';
echo '<br /><a href="'.$loginUrl.'">Click here to try again!</a>';
}
elseif ($fbuser && !empty($postResults))
{
//Everything looks good, show message form.
}
?>
Большое спасибо за первый луч света в этот вопрос для меня :) Что ты говорить имеет смысл ... однако ... Мне интересно о токенах доступа ... Где установить токен доступа? –
Отредактирован мой ответ, чтобы показать, как установить токен доступа. – JayNCoke
Итак, я использовал, $ access_token = $ facebook-> getAccessToken(); и это создает токен ...однако, я не знаю, какие из моих страниц Facebook он генерирует (или если это имеет значение) Я пробовал добавить: $ new_access_token = "mytokenhere"; $ facebook-> setAccessToken ($ new_access_token); код process.php, но изменений не было ... до сих пор ... угадывая, возможно, мне нужно будет получить код маркера, специфичный для страницы? но не уверен ... спасибо! –