2015-01-29 2 views
3

Привет Мне нужно, чтобы написать сообщение на странице facebook вентиляторапользователь не авторизован приложение для выполнения этого действия (# 200)

это мой код Когда я запускаю этот код я следующую ошибку (# 200) Пользователь не разрешил приложению выполнить это действие , если проблема с токеном access_token? как я могу создать access_token

<?php 
    require 'facebook-php-sdk-master//src/facebook.php'; 

    $appId = '1617691071796143'; 
    $secret = 'd84420ccfe2fa7eecac50ca96936bb21'; 
    $returnurl = 'lankabird.com'; 
    $permissions = 'manage_pages, publish_stream, offline_access,read_stream'; 

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

    if($fbuser){ 

     $page_id = "1596941017191630"; 
     $page_access_token = ""; 
     //$page_access_token = "1617691071796143|d84420ccfe2fa7eecac50ca96936bb21"; 
     $result = $fb->api("/me/accounts"); 

     // loop trough all your pages and find the right one 
     if(!empty($result['data'])) 
     { 
      foreach($result["data"] as $page) 
      { 
      if($page["id"] == $page_id) 
      { 
       $page_access_token = $page["access_token"]; 
       break; 
      } 
      } 
     } 
     else 
     { 
      echo "AN ERROR OCCURED: could not get the access_token. Please verify the page ID ".$page_id." exists."; 
     } 

     $fb->setAccessToken($page_access_token); 

     // Now try to post on page's wall 
     try{ 
      $message = array(
       'message' => "YOUR MESSAGE", 
      ); 

      $result = $fb->api('/'.$page_id.'/feed','POST',$message); 
      if($result) 
      { 
       echo 'Successfully posted to Facebook Wall...'; 
      } 
     }catch(FacebookApiException $e){ 
      echo $e->getMessage(); 
     } 

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

ответ

11

publish_stream и offline_access устарели уже много лет, где вы, ребята, держать скопировав код? Вам нужно publish_actions (и, конечно, manage_pages в вашем случае), чтобы размещать на стене, как вы можете прочитать в документации: https://developers.facebook.com/docs/graph-api/reference/v2.2/page/feed#publish

Кроме того, имейте в виду, что вы должны пройти через процесс проверки с теми правами, если вам хотят сделать свой App общественности: https://developers.facebook.com/docs/apps/review/login

О read_stream разрешения:

Это разрешение предоставляется для приложений построения Facebook-брендированный клиент на платформах, где Facebook не является уже доступны. Например, приложения Android и iOS не будут одобрены для этого разрешения. Кроме того, веб-приложениям, рабочим столам, автомобильным и телевизионным приложениям не будет предоставлено это разрешение.

Источник: https://developers.facebook.com/docs/facebook-login/permissions/v2.2#reference-read_stream

... смысл, вы не получите read_stream утвержден.

Редактировать: Вы также можете использовать разрешение publish_pages, если хотите опубликовать что-то «как страницу». См. Журнал изменений для получения дополнительной информации: https://developers.facebook.com/docs/apps/changelog#v2_3_changes

+0

спасибо я usede http://stackoverflow.com/questions/18750786/facebook-php-api-post-to-wall-falls-under -рецензии-по-другим. после добавления read_stream я получил подтверждение ошибки страницы. ОШИБКА ОШИБКИ: не удалось получить access_token. Пожалуйста, проверьте идентификатор страницы. Что это такое ОШИБКА ОШИБКИ: не удалось получить access_token. Проверьте идентификатор страницы – channasmcs

+0

, для чего вам нужен read_stream? это разрешение для чтения существующих сообщений профиля пользователя и совершенно не имеет отношения к страницам. – luschn

+0

также вы получили 2 сокращения в заявлении require, и вы используете старый php sdk. я предлагаю использовать последнюю. – luschn

0

Вы используете неправильные разрешения. Вам нужны publish_actions и manage_pages.

$permissions = 'manage_pages,publish_actions'; 

См

+0

Мне приходится сталкиваться с этим после добавления $ permissions = 'manage_pages, publish_actions'; ОШИБКА ОШИБКИ: не удалось получить access_token. Проверьте идентификатор страницы 1596941017191630.(# 200) Ошибка разрешений – channasmcs

+0

На самом деле вам нужно 'publish_pages' вместо' publish_actions'. – Highstrike

+0

На момент написания это было правильно. Но спасибо за подсказку! – Tobi

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

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