我试图让我的Django应用程序(不使用谷歌应用程序引擎)使用谷歌联系人数据API从谷歌联系人检索数据.通过身份验证文档以及Data API Python客户端文档
获得一次性令牌的第一步(AuthSubRequest)工作正常.下一步(AuthSubSessionToken),它是将一次性令牌升级为会话令牌.python API调用UpgradeToSessionToken()根本不适合我,它给了我NonAuthSubToken异常:
gd_client = gdata.contacts.service.ContactsService()
gd_client.auth_token = authsub_token
gd_client.UpgradeToSessionToken()
Run Code Online (Sandbox Code Playgroud)
作为替代方案,我希望通过"手动"构建HTTP请求来实现它:
url = 'https://www.google.com/accounts/AuthSubSessionToken'
headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Authorization': 'AuthSub token=' + authsub_token,
'User-Agent': 'Python/2.6.1',
'Host': 'https://www.google.com',
'Accept': 'text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2',
'Connection': 'keep-alive',
}
req = urllib2.Request(url, None, headers)
response = urllib2.urlopen(req)
Run Code Online (Sandbox Code Playgroud)
这给了我一个不同的错误:
HTTP错误302:HTTP服务器返回重定向错误,导致无限循环.最后30x错误消息是:暂时移动
我在这做错了什么?我非常感谢我尝试使用的方法之一的帮助/建议/建议:Python API调用(UpgradeToSessionToken)或使用urllib2手动构建HTTP请求.
我正在使用谷歌的GData API,以便从我的应用程序上传视频到youtube.上传工作正常,但上传的视频质量仅为360p,而原始视频的质量为720p.
这是否按预期工作?如果是这样,有什么方法可以让我的应用程序上传HQ电影吗?
这是我用来实现视频上传的代码,如果有任何帮助的话.
GDataYouTubeMediaGroup *mediaGroup = [GDataYouTubeMediaGroup mediaGroup];
[mediaGroup setMediaTitle:title];
[mediaGroup setMediaDescription:desc];
[mediaGroup addMediaCategory:category];
[mediaGroup setMediaKeywords:keywords];
[mediaGroup setIsPrivate:NO];
NSString *mimeType = [GDataUtilities MIMETypeForFileAtPath:outputURL.relativePath defaultMIMEType:@"video/quicktime"];
GDataEntryYouTubeUpload *entry;
entry = [GDataEntryYouTubeUpload uploadEntryWithMediaGroup:mediaGroup data:data MIMEType:mimeType slug:filename];
SEL progressSel = @selector(ticket:hasDeliveredByteCount:ofTotalByteCount:);
[service setServiceUploadProgressSelector:progressSel];
GDataServiceTicket *ticket;
ticket = [service fetchEntryByInsertingEntry:entry forFeedURL:url delegate:self didFinishSelector:@selector(uploadTicket:finishedWithEntry:error:)];
Run Code Online (Sandbox Code Playgroud)
布伦顿
我目前正在编写Android应用程序的一部分,使用Google Data API将视频上传到YouTube.我有来自Google Code的API的最新版本,我基本上已经从他们的开发人员指南中复制了该示例.
一切都没有警告或错误编译,应用程序运行正常.但是当我调用service.insert(...)时,我得到以下堆栈跟踪:
ERROR/dalvikvm(19489): Could not find class 'com.google.gdata.data.media.MediaBodyPart$MediaSourceDataHandler', referenced from method com.google.gdata.data.media.MediaBodyPart.initMediaDataHandler
ERROR/dalvikvm(19489): Could not find class 'javax.activation.DataHandler', referenced from method com.google.gdata.data.media.MediaBodyPart.initMediaDataHandler
ERROR/dalvikvm(19489): Could not find class 'javax.mail.internet.MimeBodyPart$MimePartDataHandler', referenced from method javax.mail.internet.MimeBodyPart.writeTo
ERROR/dalvikvm(19489): Could not find class 'javax.activation.DataHandler', referenced from method javax.mail.internet.MimeBodyPart.attachFile
ERROR/dalvikvm(19489): Could not find class 'javax.mail.internet.MimeBodyPart$MimePartDataHandler', referenced from method javax.mail.internet.MimeBodyPart.getDataHandler
ERROR/dalvikvm(19489): Could not find class 'javax.activation.DataHandler', referenced from method javax.mail.internet.MimeBodyPart.setContent
ERROR/dalvikvm(19489): Could not find class 'javax.activation.DataHandler', referenced from method javax.mail.internet.MimeBodyPart.setContent
ERROR/dalvikvm(19489): Could not …Run Code Online (Sandbox Code Playgroud) 可能重复:
是否已有Google+ API?
Google+是否有我可以在iOS应用程序中使用的公共API?
如何通过V3 REST API使用批量请求获取/添加/更新Google Calendar事件?我试过但不行.根据文档(https://developers.google.com/google-apps/calendar/batch),应该可以通过向API发布多部分/混合内容类型消息来发送批处理请求.工作HTTP POST的一个例子很棒.
谢谢,Riyaz
我正在将Google日历与我的应用程序同步(我将事件存储在数据库中).更新事件后,我可以通过在"更新"订单上对事件订阅源进行排序,轻松找到上次更新.但是,如果删除/删除了某个活动,我该如何从Feed中跟踪此更新?
我正在通过YouTube API访问用户喜爱的视频.如何获得将每个视频标记为收藏的日期/时间?
更新:
有人指出,YouTube API文档说用户最喜欢的Feed上的"已发布"日期会有用户将视频标记为收藏的时间.但这似乎是错误的.
例如,看看这个视频条目:
http://gdata.youtube.com/feeds/api/videos/g2981r_MtHQ
它有一个"已发布"的日期2008-03-19T21:09:09.000Z.
现在让我们在一些用户喜爱的Feed中看到相同的视频:
http://gdata.youtube.com/feeds/api/users/KeepWatchingTheSkies/favorites
它有一个"已发布"的日期2008-03-19T21:09:09.000Z.相同.
以下是获取收藏Feed的不同方法:
http://gdata.youtube.com/feeds/base/users/KeepWatchingTheSkies/favorites
我们还有一个"已发布"的日期2008-03-19T21:09:09.000Z.
假设用户没有足够快地在相同的毫秒内发布视频,那么在YouTube文档中写的内容可能是错误的,并且这不是用户将视频标记为收藏的时间.
所以我的问题是:如何让用户将视频标记为收藏?
我有一个GDATA链接,我想在我的应用程序中使用.此链接包含播放列表,我希望该播放列表显示在ListView.然后,用户将选择他/她想要的视频,然后可以使用本地Youtube应用程序在应用程序旁边播放.
请指出一个直观的教程.我知道YouTube API页面包含所有信息,但我可以做出正面或反面.
关于如何使用支持的API将javascript客户端(非小工具)写入私有Google电子表格,我感到非常困惑?我没有遇到OAuth2 Drive API客户端的问题,但是没有电子表格支持!
https://developers.google.com/apis-explorer
此问题粗略地要求电子表格API显示在该页面上:
http://code.google.com/p/google-api-javascript-client/issues/detail?id=37
我可能遗漏了一些明显的东西,所以谢谢你的善意帮助我......
更新:
哇,这是踢我的背后!因此,我将尝试从Oauth2工作流中获取access_token,然后设置gdata API Authorization标头,如下所示:
service = new google.gdata.client.GoogleService('testapp');
service.setHeaders({'Authorization': 'Bearer '+ access_token});
Run Code Online (Sandbox Code Playgroud)
不幸的是,chrome控制台显示当我执行类似操作时,此标头实际上并未发送到Google
service.getFeed(url, cb, eb);
Run Code Online (Sandbox Code Playgroud)
Uffff!
我正在使用Google JavaScript API在网络应用中获取谷歌联系人,我想要检索他们的图片.
我正在做这样的事情(大大简化):
var token; // let's admit this is available already
function getPhotoUrl(entry, cb) {
var link = entry.link.filter(function(link) {
return link.type.indexOf("image") === 0;
}).shift();
if (!link)
return cb(null);
var request = new XMLHttpRequest();
request.open("GET", link.href + "?v=3.0&access_token=" + token, true);
request.responseType = "blob";
request.onload = cb;
request.send();
}
function onContactsLoad(responseText) {
var data = JSON.parse(responseText);
(data.feed.entry || []).forEach(function(entry) {
getPhotoUrl(e, function(a, b, c) {
console.log("pic", a, b, c);
});
});
}
Run Code Online (Sandbox Code Playgroud)
但是我在Chrome和Firefox中都遇到了这个错误:
跨源请求封锁:同源策略不允许读取远程资源在https://www.google.com/m8/feeds/photos/media/<user_email?>/<some_contact_id> V = …
oauth gdata-api google-data-api google-shared-contacts google-oauth
gdata-api ×10
gdata ×4
google-api ×3
android ×2
youtube ×2
youtube-api ×2
api ×1
django ×1
google-oauth ×1
google-plus ×1
http ×1
iphone ×1
javascript ×1
listview ×1
oauth ×1
playlist ×1
python ×1
rest ×1