You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Dailymotion API遇授权异常,请求排查PHP代码问题

排查Dailymotion API授权错误:DailymotionAuthRequiredException

从你给出的错误栈和代码来看,这个DailymotionAuthRequiredException本质是授权流程没有成功获取到有效访问令牌,导致后续调用uploadFile时触发了权限校验失败。下面是几个关键的排查点和修复方案:

1. 确认密码授权模式已在开发者后台启用

Dailymotion的GRANT_TYPE_PASSWORD(资源所有者密码凭证授权)并不是默认开启的。你需要登录Dailymotion开发者控制台,找到你的应用,在“Settings”或“Authorization”标签下,确认Password Grant选项已经被勾选启用。如果没开,这个授权模式根本无法生成令牌,自然会触发授权失败的错误。

2. 修复代码中未定义的变量

你的代码里调用video.create时用到了$title和$description,但这两个变量在前面没有定义赋值。虽然这不是当前授权错误的直接原因,但后续执行到这一步肯定会报错,建议先补上:

$title = "我的测试视频";
$description = "这是通过API上传的测试视频";

3. 添加异常捕获,获取更详细的错误信息

当前代码没有任何异常处理逻辑,很难定位授权失败的具体原因(比如用户名密码错误、权限范围不匹配、API密钥错误等)。建议把核心逻辑包裹在try-catch块里,捕获DailymotionException来获取具体错误:

<?php
include("Dailymotion.php");

$apiKey = "xxxxxxxxxxxxxxx";
$apiSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxx";
$user = "my username";
$pwd = "my password";
$filepath = "Test.mp4";
// 补上未定义的变量
$title = "测试视频标题";
$description = "测试视频描述";

try {
    $api = new Dailymotion();
    // 执行授权
    $api->setGrantType(
        Dailymotion::GRANT_TYPE_PASSWORD, 
        $apiKey, 
        $apiSecret, 
        array('manage_videos', 'write','delete'), 
        array('username' => $user, 'password' => $pwd)
    );
    
    // 上传文件
    $url = $api->uploadFile($filepath);
    
    // 创建视频
    $result = $api->call('video.create', array(
        'url' => $url,
        'title' => $title,
        'description' => $description,
        'private' => 'false',
        'published' => 'true',
    ));
    
    echo "视频上传成功,ID:" . $result['id'];
} catch (DailymotionAuthRequiredException $e) {
    echo "授权错误:" . $e->getMessage();
} catch (DailymotionException $e) {
    echo "API调用错误:" . $e->getMessage();
}
?>

4. 校验核心参数的正确性

  • 确认$user是你的Dailymotion用户名(不是邮箱),$pwd是正确的密码,注意大小写和特殊字符;
  • 检查$apiKey和$apiSecret是否从开发者后台完整复制,没有多余的空格或拼写错误;
  • 权限范围array('manage_videos', 'write','delete')是正确的,这些权限足够完成上传和创建视频的操作。

如果做完以上排查还是报错,通过catch块打印的错误信息应该能帮你定位更具体的问题(比如“invalid credentials”就是用户名密码错了,“unauthorized grant type”就是密码授权没开)。

内容的提问来源于stack exchange,提问作者Scott McGee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 20:43:15