使用Graph API将视频上传到facebook群组

时间:2017-07-05 06:22:21

标签: facebook facebook-graph-api

我正在使用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;
}

返回包含idnamecategoryaccess_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。

0 个答案:

没有答案