2015-06-02 2 views
0

У нас есть проблема с новой PicasaWeb аутентификацииpicasaweb.google.com OAuth 2,0

Мы используем этот код в C# .NET 2012 (Framework 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 B ut это не сработало, это то, что мы используем 4.5.1, а не 4.5?

Мы сделали несколько тестов, генерирующего маркер из страницы Google: https://developers.google.com/oauthplayground

Мы выбрали Picasa Web 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. С тех пор апи работал правильно и послесловие я получаю 404 (страница не найдена ошибка) тоже.

Возможно, Google что-то изменила. Потому что мой код похож! и я не вижу ошибок в вашем коде.

Привет Майк