2014-07-09 5 views
7

używam następujący kod, aby zamieścić na stronie facebook, ale pojawia się ten błąd:(# 200) Użytkownik nie autoryzował aplikacji do wykonania tego działania facebook php api error?

(#200) The user hasn't authorized the application to perform this action 

otrzymuję okno uprawnień manage_page i klikam ok i wszystko jest tam w porządku, więc nie rozumiem, dlaczego ja nie można publikować na stronie na Facebooku!

to mój kod:

<?php 
include_once 'inc/facebook.php'; 

$appId = '000000000000000'; 
$secret = '00000000000000000000000'; 
$returnurl = 'https://mrdomain.com'; 
$permissions = 'manage_pages, publish_stream'; 

$fb = new Facebook(array('appId'=>$appId, 'secret'=>$secret)); 

$fbuser = $fb->getUser(); 

if($fbuser){ 

    if(isset($_POST['msg']) and $_POST['msg']!=''){ 
     try{ 
      $message = array(
       'message' => $_POST['msg'] 
      ); 
      $posturl = '/'.$_POST['pageid'].'/feed'; 
      $result = $fb->api($posturl,'POST',$message); 
      if($result){ 
       echo 'Successfully posted to Facebook Wall...'; 
      } 
     }catch(FacebookApiException $e){ 
      echo $e->getMessage(); 
     } 
    } 

    try{ 
     $qry = 'select page_id, name from page where page_id in (select page_id from page_admin where uid ='.$fbuser.')'; 
     $pages = $fb->api(array('method' => 'fql.query','query' => $qry)); 

     if(empty($pages)){ 
      echo 'The user does not have any pages.'; 
     }else{ 
      echo '<form action="" method="post">'; 
      echo 'Select Page: <select name="pageid">'; 
      foreach($pages as $page){ 
       echo '<option value="'.$page['page_id'].'">'.$page['name'].'</option>'; 
      } 
      echo '</select>'; 
      echo '<br />Message: <textarea name="msg"></textarea>'; 
      echo '<br /><input type="submit" value="Post to wall" />'; 
      echo '</form>'; 
     } 

    }catch(FacebookApiException $e){ 
     echo $e->getMessage(); 
    } 

}else{ 
    $fbloginurl = $fb->getLoginUrl(array('redirect-uri'=>$returnurl, 'scope'=>$permissions)); 
    echo '<a href="'.$fbloginurl.'">Login with Facebook</a>'; 
} 

?> 

muszę zrobić coś jeszcze, zanim będę mógł pisać na stronie facebook?

każda pomoc byłaby doceniona.

+0

możliwy duplikat [Błąd (nr 200) Użytkownik nie autoryzował aplikacji do wykonania tej czynności] (http://stackoverflow.com/questions/24632296/error-200-the-user-hasnt-authorized- the-application-to-perform-this-action) –

Odpowiedz

20

Wygląda na to, że używasz zamortyzowanej zgody, spróbuj publish_actions zamiast publish_stream.

+2

gdzie jest ten przycisk wielokrotnego głosowania .. Nie mogę ci wystarczająco podziękować. – user3806613

+0

Zrobiłeś świetną robotę z twoją odpowiedzią !!!! –

+0

Jak używać "publish_actions" w javascript sdk? –

Powiązane problemy