Skip to content

Commit b543e47

Browse files
committed
added graph support for facebook video
1 parent b62b114 commit b543e47

File tree

4 files changed

+39
-20
lines changed

4 files changed

+39
-20
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,8 @@ Used only for facebook events (not needed for posts, images, etc), to get inform
139139
Name | Type | Description
140140
-----|------|------------
141141
`key` | `string` | The access token used to get info from facebook graph API.
142-
`fields` | `string` | Comma-separated list of fields to query. Please refer to [Facebook documentation](https://developers.facebook.com/docs/graph-api/reference/event) for the full list of available fields.
142+
`events_fields` | `string` | Comma-separated list of fields to query for a facebook event. Please refer to [Facebook documentation](https://developers.facebook.com/docs/graph-api/reference/event) for the full list of available fields.
143+
`videos_fields` | `string` | Comma-separated list of fields to query for a facebook video. Please refer to [Facebook documentation](https://developers.facebook.com/docs/graph-api/reference/event) for the full list of available fields.
143144

144145
## Example with all options:
145146

demo/index.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
include __DIR__.'/../env.php';
1818

1919
$options['google']['key'] = getenv('GOOGLE_KEY');
20+
$options['facebook']['key'] = getenv('FACEBOOK_KEY');
2021
}
2122

2223
function getUrl()

src/Embed.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ abstract class Embed
4848

4949
'facebook' => [
5050
'key' => null,
51-
'fields' => 'cover,description,end_time,id,name,owner,place,start_time,timezone'
51+
'events_fields' => 'id,cover,description,end_time,name,owner,place,start_time,timezone',
52+
'videos_fields' => 'id,description,embed_html',
5253
]
5354
];
5455

src/Providers/Api/Facebook.php

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,12 @@ public function __construct(Adapter $adapter)
1818
{
1919
parent::__construct($adapter);
2020

21-
if (($id = self::getId($adapter->getResponse()->getUrl()))) {
22-
$key = $adapter->getConfig('facebook[key]');
21+
if (($endPoint = $this->getEndPoint())) {
22+
echo $endPoint;
23+
$response = $adapter->getDispatcher()->dispatch($endPoint);
2324

24-
if ($key) {
25-
$endPoint = Url::create('https://graph.facebook.com/'.$id)
26-
->withQueryParameter('access_token', $key)
27-
->withQueryParameter('fields', $adapter->getConfig('facebook[fields]'));
28-
29-
$response = $adapter->getDispatcher()->dispatch($endPoint);
30-
31-
if ($json = $response->getJsonContent()) {
32-
$this->bag->set($json);
33-
}
25+
if ($json = $response->getJsonContent()) {
26+
$this->bag->set($json);
3427
}
3528
}
3629
}
@@ -98,16 +91,39 @@ public function getPublishedTime()
9891
}
9992

10093
/**
101-
* Returns the id found in a facebook url.
102-
*
103-
* @param Url $url
94+
* {@inheritdoc}
95+
*/
96+
public function getCode()
97+
{
98+
return $this->bag->get('embed_html', true);
99+
}
100+
101+
/**
102+
* Returns the Graph API Endpoint
104103
*
105-
* @return string
104+
* @return Url|null
106105
*/
107-
private static function getId(Url $url)
106+
private function getEndPoint()
108107
{
108+
$url = $this->adapter->getResponse()->getUrl();
109+
$key = $this->adapter->getConfig('facebook[key]');
110+
111+
if (empty($key)) {
112+
return;
113+
}
114+
109115
if ($url->getDirectoryPosition(0) === 'events') {
110-
return $url->getDirectoryPosition(1);
116+
return Url::create('https://graph.facebook.com/')
117+
->withAddedPath($url->getDirectoryPosition(1))
118+
->withQueryParameter('access_token', $key)
119+
->withQueryParameter('fields', $this->adapter->getConfig('facebook[events_fields]'));
120+
}
121+
122+
if ($url->getDirectoryPosition(1) === 'videos') {
123+
return Url::create('https://graph.facebook.com/')
124+
->withAddedPath($url->getDirectoryPosition(2))
125+
->withQueryParameter('access_token', $key)
126+
->withQueryParameter('fields', $this->adapter->getConfig('facebook[videos_fields]'));
111127
}
112128
}
113129
}

0 commit comments

Comments
 (0)