使用Vimeo API及PHP库获取群组、专辑和视频遇异常求助
解决Vimeo API获取群组专辑及视频的问题
我来帮你一步步排查这个问题,咱们从核心的API调用逻辑开始梳理:
1. 为什么获取群组时没有返回关联专辑?
Vimeo API的get_group端点(获取群组详情)默认只会返回群组的基础信息,不会自动附带关联的专辑列表。要获取指定群组下的所有专辑,你需要单独调用群组专辑列表端点,而不是只获取群组本身的数据。
用PHP库的话,你可以直接请求/groups/{group_id}/albums这个路径,示例代码如下:
use Vimeo\Vimeo; // 初始化Vimeo客户端(替换成你的凭证) $vimeo = new Vimeo('你的客户端ID', '你的客户端密钥', '你的访问令牌'); // 获取群组614274下的所有专辑 $albumsResponse = $vimeo->request('/groups/614274/albums', [], 'GET'); if ($albumsResponse['status'] === 200) { $albums = $albumsResponse['body']['data']; foreach ($albums as $album) { echo "专辑ID: " . $album['id'] . " | 标题: " . $album['name'] . "\n"; // 后续可以在这里继续获取该专辑的视频 } } else { echo "获取专辑列表失败: " . $albumsResponse['body']['error'] . "\n"; }
2. 为什么单独获取专辑时提示“The requested album couldn't be found”?
你遇到的这个错误,大概率是因为调用了错误的API端点:
- 如果你要获取的是群组关联的专辑,不能用
/users/{user_id}/albums/{album_id}这个用户专辑端点,而应该用/groups/{group_id}/albums/{album_id}这个群组专辑专属端点。 - 另外要确认:你的访问令牌是否有访问该专辑的权限?如果群组或专辑是私有的,令牌需要包含
private权限范围,或者是该群组管理员的授权令牌。
修正后的单独获取群组专辑的代码示例:
// 获取群组614274下的专辑22263 $singleAlbumResponse = $vimeo->request('/groups/614274/albums/22263', [], 'GET'); if ($singleAlbumResponse['status'] === 200) { $album = $singleAlbumResponse['body']; echo "专辑详情: " . print_r($album, true); } else { echo "获取专辑失败: " . $singleAlbumResponse['body']['error'] . "\n"; }
3. 获取专辑内的视频
当你成功拿到专辑数据后,只需要调用/albums/{album_id}/videos端点(或者直接用专辑的uri拼接/videos)就能获取专辑内的视频列表:
// 假设已经拿到了专辑的uri(比如从之前的列表中获取) $albumUri = '/albums/22263'; $videosResponse = $vimeo->request($albumUri . '/videos', [], 'GET'); if ($videosResponse['status'] === 200) { $videos = $videosResponse['body']['data']; foreach ($videos as $video) { echo "视频标题: " . $video['name'] . " | 链接: " . $video['link'] . "\n"; } } else { echo "获取视频失败: " . $videosResponse['body']['error'] . "\n"; }
关键注意事项
- 始终确保你的访问令牌有足够的权限:如果操作私有内容,令牌需要包含
private、video_files等必要的权限范围。 - 优先使用Vimeo API提供的关联端点(比如群组下的专辑、专辑下的视频),而不是单独调用孤立的端点,这样能避免权限或归属问题。
内容的提问来源于stack exchange,提问作者jking
相关产品推荐
相关产品推荐

