我正在使用YouTube的V3 Data API添加订阅频道。这发生在Wordpress安装上。
我在Wordpress主题功能上添加了Google API(for oauth):
wp_enqueue_script( 'googleapi', 'https://apis.google.com/js/client.js?onload=googleApiClientReady', array(), '1.0.0', true );
我以同样的方式添加了oauth javascript文件,这是第一个:https://developers.google.com/youtube/v3/code_samples/javascript。
按照本指南(https://developers.google.com/youtube/v3/docs/subscriptions/insert(应用脚本)),我使用addSubscription方法扩展了OAuth js。
Google客户端API似乎已加载并正常工作,因为它在oauth javascript上正确调用了googleApiClientReady。
所以,这就是插入订阅的方式:
OAUTH JAVASCRIPT
... ... ...
// After the API loads
function handleAPILoaded() {
addSubscription();
}
function addSubscription() {
// Replace this channel ID with the channel ID you want to subscribe to
var channelId = 'this is filled with the channel ID';
var resource = {
snippet: {
resourceId: {
kind: 'youtube#channel',
channelId: channelId
}
}
};
try {
var response = YouTube.Subscriptions.insert(resource, 'snippet');
jQuery('#success').show();
} catch (e) {
if(e.message.match('subscriptionDuplicate')) {
jQuery('#success').show();
} else {
jQuery('#fail').show();
alert("Please send us a mail () with the following: ERROR: " + e.message);
}
}
所以,第一个错误来自
YouTube.Subscriptions.insert(resource, 'snippet')
它说YouTube没有定义。我把它改为:
gapi.client.youtube.subscriptions.insert(resource, 'snippet');
那个错误就消失了。在检查响应时,由于订阅未完成,这就是我得到的
{"wc":1,"hg":{"Ph":null,"hg":{"path":"/youtube/v3/subscriptions","method":"POST","params":{},"headers":{},"body":"snippet","root":"https://www.googleapis.com"},"wc":"auto"}}
所以,我想知道POST请求发生了什么,以及解决方案是什么。
我可以发布完整的OAuth文件,但它就像在示例中一样,加上最后的addSubscription方法。
答案 0 :(得分:0)
好的,我搞定了,问题出在POST请求上。这是完整的方法:
// Subscribes the authorized user to the channel specified
function addSubscription(channelSub) {
var resource = {
part: 'id,snippet',
snippet: {
resourceId: {
kind: 'youtube#channel',
channelId: channelSub
}
}
};
var request = gapi.client.youtube.subscriptions.insert(resource);
request.execute(function (response) {
var result = response.result;
if (result) {
// alert("Subscription completed");
}
} else {
// alert("Subscripion failed");
// ...
}
});
}
另外,请确保加载Google Apps API(实际上没有它,授权/登录按钮将不起作用)和jQuery。
答案 1 :(得分:0)
任何机会你都可以发布使这项工作的所有内容...所有JS整个auth.js保存为你的私钥,我正在解决这个问题。