1: <?php
2: 3: 4: 5:
6: class Horde_Core_Factory_Facebook extends Horde_Core_Factory_Injector
7: {
8: 9: 10: 11:
12: public function create(Horde_Injector $injector)
13: {
14: global $conf;
15:
16: if (empty($conf['facebook']['id']) || empty($conf['facebook']['secret'])) {
17: throw new Horde_Exception('Unable to find required Facebook configuration.');
18: }
19:
20:
21: $appId = $conf['facebook']['id'];
22: $secret = $conf['facebook']['secret'];
23:
24:
25: $context = array('http_client' => $injector->getInstance('Horde_Core_Factory_HttpClient')->create(),
26: 'http_request' => $injector->getInstance('Horde_Controller_Request_Http'));
27:
28: $fb = new Horde_Service_Facebook($appId, $secret, $context);
29:
30:
31: $fbp = unserialize($GLOBALS['prefs']->getValue('facebook'));
32: if (!empty($fbp['sid'])) {
33: try {
34: $fb->auth->setSession($fbp['sid']);
35: } catch (Horde_Service_Facebook_Exception $e) {
36: throw new Horde_Exception($e);
37: }
38: }
39:
40: return $fb;
41: }
42:
43: }
44: