2015-06-02 145 views
0

我们有一个新的身份验证Picasa网络问题picasaweb.google.com的OAuth 2.0

我们正在使用C#.NET 2012这个代码(框架4.5.1)

const string ServiceAccountEmail = "[email protected]"; 
var certificate = new X509Certificate2(@"C:\key.p12", "notasecret", X509KeyStorageFlags.Exportable); 
var serviceAccountCredentialInitializer = 
new ServiceAccountCredential.Initializer(ServiceAccountEmail) 
{ 
    Scopes = new[] { "https://picasaweb.google.com/data/"} 
}.FromCertificate(certificate); 
var credential = new ServiceAccountCredential(serviceAccountCredentialInitializer); 
if (!credential.RequestAccessTokenAsync(System.Threading.CancellationToken.None).Result) 
throw new InvalidOperationException("Access token request failed."); 
var requestFactory = new GDataRequestFactory(null); 
requestFactory.CustomHeaders.Add("Authorization: Bearer " + credential.Token.AccessToken); 
requestFactory.CustomHeaders.Add("Gdata-version: 2"); 
PicasaService service = new PicasaService("api-project"); 
service.RequestFactory = requestFactory; 
PhotoQuery query = new PhotoQuery(PicasaQuery.CreatePicasaUri(_IdUsuari, _albumid)); 
PicasaFeed feed = service.Query(query); 

我们有一个错误检索PicasaFeed: 未处理的异常:Google.GData.Client.GDataRequestException:AUT hentication执行请求返回意想不到的结果:404

我们做链接的每一步:Google.GData.Client.GDataRequestException - Authentication suddenly fails in old code 乙它没有工作,是我们使用4.5.1而不是4.5?

我们做了一些测试生成从谷歌的网页令牌:https://developers.google.com/oauthplayground

我们选择Picasa网络API V2与范围:https://picasaweb.google.com/data/

这已生成的令牌。我们标记了“自动刷新令牌失效”选项,因为它在3600秒内到期。 问题是这个标记是否在3600秒后改变? 。 从这个环节,我们已经取代了以前的代码,生成的令牌,其中“XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX”是生成令牌:

var requestFactory = new GDataRequestFactory(null); 
requestFactory.CustomHeaders.Add("Authorization: Bearer " + "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); 
requestFactory.CustomHeaders.Add("Gdata-version: 2"); 
PicasaService service = new PicasaService("api-project"); 
service.RequestFactory = requestFactory; 
PhotoQuery query = new PhotoQuery(PicasaQuery.CreatePicasaUri(_IdUsuari, _albumid)); 
PicasaFeed feed = service.Query(query); 

而与此令牌,如果它的工作原理。 任何由令牌代码生成的第一个代码在生成令牌和读取到Picasa时无法正常工作的想法。 有没有人有任何解决方案?

非常感谢您

+0

访问令牌到期后,3600这是正常的 – DaImTo

回答

0

我只是想补充一点,我也有同样的问题,因为五月,25 自那时以来,API工作正常和后记我得到的404(找不到网页错误)了。

也许谷歌已经改变了一些东西。 因为我的代码看起来很相似!并且在代码中看不到任何错误。

问候 迈克