我正在使用GRAPH API将视频上传到我的网页。我也希望将它们上传到我的小组。
这就是我将视频上传到网页时所做的工作。
$fb = new Facebook([
'app_id' => APP_ID,
'app_secret' => APP_SECRET,
'default_graph_version' => 'v2.2',
]);
$data = [
'title' => $title,
'description' => $description,
'source' => $fb->videoToUpload(WWW_ROOT . '../' . $path . $file),
];
try {
$result = $fb->post('/me/videos', $data, $user->access_token);
return $result;
} catch (FacebookResponseException $e) {
$response['status'] = false;
$response['message'] = 'Graph Returned an error: '. $e->getMessage();
return $response;
} catch (FacebookSDKException $e) {
$response['status'] = false;
$response['message'] = 'Facebook SDK returned an error: ' . $e->getMessage();
return $response;
}
这很好用。但不适合小组工作。
问题可能是我没有access_token
group
因此使用了用户access_token
如何获取access_token
?
要获取页面的访问令牌,我正在做
try {
$userPages = $fb->get('/me/accounts', $accessToken->getValue());
$userPages = $userPages->getDecodedBody()['data'];
} catch (FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch (FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
返回包含id
,name
,category
和access_token
的网页数组。
[
0 => [
'name' => 'my page name',
'category' => 'Education',
'id' => 1234567890,
'access_token' => 'hkjh3k42j4j4l1kj4h1lj'
],
]
但是当我使用
获得小组时try {
$userGroups = $fb->get('me/groups', $accessToken->getValue());
$userGroups = $userGroups->getDecodedBody()['data'];
} catch (FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch (FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
我只返回
[
0 => [
'name' => 'my group name',
'privacy' => 'OPEN',
'id' => 1234567890
]
]
并且没有访问令牌。
如何获取群组的访问令牌?
此处$accessToken->getValue()
是用户验证应用时的access_token。