2014-09-03 4 views
0

Я создал приложение на facebook и через PHP SDK 4.0. Я создал логин и мне нужно иметь разрешения на запись в фиде, но даже мы добавили разрешения, когда я это делаю не записывать в журнал больше окна окна для утверждения и предоставления разрешений.SDK 4.0 Facebook, нет диалогового окна для запроса разрешения publish_actions

это код используется:

<?php session_start(); 
require 'Facebook/autoload.php'; 




use Facebook\FacebookSession; 
use Facebook\FacebookRequest; 
use Facebook\GraphObject; 
use Facebook\FacebookRequestException; 
use Facebook\FacebookRedirectLoginHelper; 



// init app with app id (APPID) and secret (SECRET) 
FacebookSession::setDefaultApplication('XXXXXXXXXX XXXXXXXX','XXXXXXXXXXXXXXXXXX'); 

// login helper with redirect_uri 
$helper = new FacebookRedirectLoginHelper('XXXXXXXXXXXXX'); 

try { 
$session = $helper->getSessionFromRedirect(); 
} catch(FacebookRequestException $ex) { 
// When Facebook returns an error 
} catch(Exception $ex) { 
// When validation fails or other local issues 
} 

// see if we have a session 
if (isset($session)) { 
// graph api request for user data 
$request = new FacebookRequest($session, 'GET', '/me'); 
$response = $request->execute(); 
// get response 
$graphObject = $response->getGraphObject(); 

// print data 
echo print_r($graphObject, 1); 






if($session) { 


try { 


$response = (new FacebookRequest(
$session, 'POST', '/me/feed', array(
'link' => 'www.example.com', 
'message' => 'User provided message' 
) 
))->execute()->getGraphObject(); 


echo "Posted with id: " . $response->getProperty('id'); 


} catch(FacebookRequestException $e) { 


echo "Exception occured, code: " . $e->getCode(); 
echo " with message: " . $e->getMessage(); 


} 


} 




} else { 

$params = array(
scope => 'publish_actions' 
//redirect_uri => $url 
); 
// show login url 
echo '<a href="' . $helper->getLoginUrl($params) . '">Login</a>'; 
} 
?> 
+0

Будет хорошо, если бы вы просто наклеили фрагмент кода вместо длинных кодов. Это позволяет нам более эффективно понимать ваш код. – Roylee

+0

Если у вас уже есть сеанс из предыдущего успешного входа в систему, который не включает 'publish_actions', ваш код не дойдет до того момента, когда он снова выведет (новый) URL-адрес для входа ... вы должны не только проверить, есть ли у вас действительный пользовательский сеанс, но также если у вас уже есть необходимые разрешения - и если один из них не работает, вам нужно снова отправить пользователя через поток входа. (И вы также должны принять во внимание то, что докторы говорят о том, что снова запрашивают разрешения, когда пользователь уже один раз отказывался от пользователя.) – CBroe

+0

Привет, @CBroe, пожалуйста, поделитесь ссылкой, где можно снова прочитать запрос о повторном разрешении? –

ответ

0

publish_actions должен быть одобрен Facebook для вашего приложения, если вы уже подали на утверждение Facebook может занять до недели до этого вы не можете публиковать рассказы на facebook пользователя график.

Смежные вопросы