- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试基于浏览器上传到 YouTube。我正在为 ZF2 使用 PHP、Zend Framework 2 和 ZendGData 客户端库。我已按照 Google Developers 指南进行设置,并成功执行未经授权的请求 - 即搜索视频。我还能够执行授权请求 - 即从我的 YouTube 帐户中检索我的全名。
当我尝试上传时 - 检索上传 token 时出现错误:
预期响应代码 200,得到 403
此操作需要开发人员 key
错误 403
我的上传器 Controller 如下所示。我使用 https://code.google.com/apis/youtube/dashboard 设置了开发者 key 如教程中所述,并将其包含在我的代码中。还提供了相应的用户/电子邮件和密码。我正在使用 Curl 连接到开发指南中未涵盖的 API,但我认为这不是问题所在。
`
namespace Uploader\Controller;
use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;
use ZendGData\YouTube;
use ZendGData\ClientLogin;
use Zend\Http\Client\Adapter;
class UploaderController extends AbstractActionController
{
public function indexAction()
{
$adapter = new Adapter\Curl();
$curl = new \ZendGData\HttpClient();
$curl->setAdapter($adapter);
$adapter->setOptions(array(
'curloptions' => array(
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE,
)
));
$authenticationURL= 'https://www.google.com/accounts/ClientLogin';
$httpClient = ClientLogin::getHttpClient(
$username = '***********@gmail.com',
$password = '*********',
$service = 'youtube',
$client = $curl,
$source = 'Testing', // a short string identifying your application
$loginToken = null,
$loginCaptcha = null,
$authenticationURL
);
$developerKey = 'AI39si55e**********************************************************************nY9p5NJ8y-8PwS9d8Jw';
$applicationId = 'Testing';
$clientId = "Youtube Tester V1";
$yt = new YouTube($httpClient, $applicationId, $clientId, $developerKey);
$yt->setMajorProtocolVersion(2);
$myVideoEntry = new YouTube\VideoEntry;
$myVideoEntry->setVideoTitle('My Test Movie');
$myVideoEntry->setVideoDescription('My Test Movie');
// The category must be a valid YouTube category!
$myVideoEntry->setVideoCategory('Autos');
// Set keywords. Please note that this must be a comma-separated string
// and that individual keywords cannot contain whitespace
$myVideoEntry->SetVideoTags('cars, funny');
$tokenHandlerUrl = 'http://gdata.youtube.com/action/GetUploadToken';
$tokenArray = $yt->getFormUploadToken($myVideoEntry, $tokenHandlerUrl);
$data = array('tokenValue' => $tokenArray['token'], 'postUrl' => $tokenArray['url']);
return new ViewModel( $data );
}
}
最佳答案
$tokenArray = $yt->getFormUploadToken($myVideoEntry, $clientId, $developerKey);
// vendor/zendframework/zendgdata/library/ZendGData/YouTube.php
public function getFormUploadToken(
$videoEntry, $clientId, $developerKey,
$url='https://gdata.youtube.com/action/GetUploadToken')
{
//$extraHeaders = $this->getHttpClient()->getRequest()->getHeaders()->toArray();
$extraHeaders = array(
'X-GData-Client' => $clientId,
'X-GData-Key' => 'key='. $developerKey
);
if ($url != null && is_string($url)) {
// $response is a Zend\Http\Response object
$response = $this->post($videoEntry, $url, null, null, $extraHeaders);
return self::parseFormUploadTokenResponse($response->getBody());
} else {
throw new App\Exception(
'Url must be provided as a string URL');
}
}
关于PHP Zend Youtube API 上传 - 此操作错误需要开发人员 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14348780/
是否有用于手动测试的代码覆盖工具?比如我新写了30行代码,编译,然后运行,有什么办法可以快速验证这30行都运行了吗? 另外,后来,在我将代码 checkin 正式版本后,有什么方法可以验证测试部门在进
老实说,这是一个家庭作业问题,但我已经浪费了好几个小时,而且无法正确解决。它返回错误数量的结果或错误的数据: 我需要选择参与指导电影和/或在电影中表演的每个人以及他们所做的次数,如果至少 5 次。 有
我正在尝试测试 MacOS 的应用内购买。输入测试用户凭据后,App Store 提示:“当前收据无效或 ds 人员 ID 不匹配。”并且购买失败。 最佳答案 我尝试了很多方法来解决这个问题。 Get
我正在为 Jenkins 使用 ActiveDirectory 插件,因此用户必须使用他们的凭据登录到 Jenkins。然后用户在 Jenkins 中被称为 joe.doe,这很完美。 当同一个人 c
如何从 Infopath 人员/组选取器检索电子邮件地址?当我将人员/组选取器添加到 infopath 表单时,我只得到 3 个字段 DisplayName、AccountId、AccountType
在 Snow Leopard 中,可以在 iCal 事件中显示空闲/忙碌时间。我搜索了 CalStore.framework 的 header ,但找不到任何描述该字段的属性。如何检索日历事件的忙/闲
是否有人成功地从专门针对 SharePoint 2013 的新建或编辑表单中获取用户(个人或组)字段的值? 我已经尝试了通过搜索互联网找到的所有解决方案以及我自己能想到的所有解决方案,所有结果都为空白
所以我需要将一个 Twitter 帐户添加到 ABRecordRef 中。然而,最快的方法似乎是获取社交资料属性的多值引用,创建它的可变版本,查找它是否有 Twitter 条目,如果已经有,则创建
我正在尝试将使用 Tomcat(最初是 5.5,但可以与 7 一起使用)在 MyEclipse 中开发的应用程序部署到我们的演示服务器 (Sun Java Web Server 7)。不幸的是,所有设
我是一名优秀的程序员,十分优秀!