Intereting Posts
Как создать объект Crypt :: RSA из модуля, экспоненты и частного экспонента? Оператор «Guard», такой как JavaScript в PHP Вставка новых строк из локальной таблицы в удаленную таблицу Неправильная аппроксимация PHP с помощью printf Как обновить часовой пояс для временных меток (created_at и updated_at), которыми управляет Laravel Eloquent? Шифрование в узлах .htaccess заменить (переписать) переменные $ _GET в URL PHP PHP-конструктор, не вызываемый при инстанцировании Проверка формы PHP Проверка того, был ли ID изменен на стороне клиента перед обновлением базы данных Laravel 5.2 – Используйте строку в качестве настраиваемого основного ключа для ярко выраженной таблицы. 0 Yii Fixtures – Исключение: Неизвестные свойства «проекты» для класса «ProjectTest» Создание CSV-файла из таблицы MySQL с использованием php как я могу получить вставленный id php и oracle Можно ли передать параметр маршрута в конструктор контроллера в Laravel?

размещение в группе от имени пользователя с использованием API-интерфейса facebook

Я пытаюсь опубликовать сообщение от имени пользователя. Я использовал учебник, данный на этой странице: http://25labs.com/updated-post-to-multiple-facebook-pages-or-groups-efficiently-v2-0/ .

Я мог бы успешно выполнить аутентификацию, но не мог опубликовать ее от имени.

Вот исходный код: https://github.com/karimkhanp/fbPostOnBehalf

Тестирование можно сделать здесь: http://ec2-54-186-110-98.us-west-2.compute.amazonaws.com/fb/

Кто-нибудь испытал это?

Я не знаком с пакетным процессом, который использует учебник, но ниже – образец кода, который публикуется в группе Facebook

<?php # same this file as # test.php include_once "src/facebook.php"; $config = array( 'appId' => "YOURAPPID", 'secret' => "YOURAPPSECRET", 'allowSignedRequest' => false, // optional, but should be set to false for non-canvas apps ); class PostToFacebook { private $facebook; private $pages; public function initialise($config){ $this->name = "Facebook"; // current necessary configs to set // $config = array( // 'appId' => FB_APP_ID, // 'secret' => FB_APP_SECRET, // 'allowSignedRequest' => false, // optional, but should be set to false for non-canvas apps // ); $this->facebook = new Facebook($config); try{ // if user removes app authorization $this->hasAccess = $this->has_permissions(); if($this->hasAccess){ $this->groups = $this->getGroupData(); } } catch(Exception $err){ } } public function postMessageToGroup($message, $groupid){ $messageResponse = array( 'STATUS' => 0 ); $fbMessageObj = array( "message" => strip_tags($message), ); try { $user_page_post = $this->facebook->api("/$groupid/feed", 'POST', $fbMessageObj); if($user_page_post && !empty($user_page_post['id'])){ $messageResponse['STATUS'] = 200; $messageData = array( 'id' => $user_page_post['id'], 'link' => 'http://facebook.com/' . $user_page_post['id'], ); $messageResponse['data'] = $messageData; } else{ $messageResponse['STATUS'] = 302; } } catch(Exception $err){ $messageResponse['STATUS'] = 500; $messageResponse['data'] = array($err); } return $messageResponse; } // TODO: should read a template somewhere function show_login() { $login_url = $this->facebook->getLoginUrl( array( 'scope' => implode(",",$this->permissions()) )); return '<a href="' . $login_url . '">Login to Facebook and Grant Necessary Permissions</a>'; } // TODO: should read a template somewhere public function toString() { if($this->hasAccess){ if($this->groups){ $msg = ""; $msg .= '<select name="group_id"><option value=""></option>'; foreach($this->groups as $group) { $msg .= '<option value="' . '' . urlencode($group['id']) . '">' . $group['name'] . '</option>' . ''; } $msg .= '</select>'; return $msg; } else return "No Groups"; } else{ return $this->show_login(); } } function getGroupData(){ $raw = $this->facebook->api('/me/groups', 'GET'); $data = array(); if (null != $raw && array_key_exists('data', $raw)) return $raw['data']; return null; } // check if current instance has access to facebook function has_permissions() { $user_id = @$this->facebook->getUser(); #print_r($user_id); if($user_id == null) return false; $permissions = $this->facebook->api("/me/permissions"); foreach($this->permissions() as $perm){ if( !array_key_exists($perm, $permissions['data'][0]) ) { return false; } } return true; } // permissins needed to post function permissions(){ return array('manage_pages', 'user_groups'); } } $fb = new PostToFacebook(); $fb->initialise($config); if(!$fb->has_permissions()) { echo $fb->show_login(); } else{ ?> <form method="post" action="test.php"> <textarea name='message'></textarea> <?php echo $fb->toString(); ?> <input type='submit'> </form> <?php } if(!empty($_POST)){ $response = $fb->postMessageToGroup($_POST['message'], $_POST['group_id']); if($response['STATUS'] == 200) print_r("<a href='" . $response['data']['link'] . "'>" . $response['data']['id'] ."</a>"); else { echo "ERROR!"; print_r($response); } } ?>