API данных ClientLogin для Picasa Web Albums с именем входа в домен Google App - PullRequest
1 голос
/ 19 мая 2009

Я использую API данных Веб-альбомов Picasa для доступа к фотоальбомам пользователей из приложения WPF.

Я следовал коду, расположенному здесь: http://code.google.com/apis/gdata/clientlogin.html

Я создал учетную запись в Веб-альбомах Picasa с учетной записью Служб Google (на хосте). Всякий раз, когда я пытался войти в систему с моим приложением WPF, я получал код ошибки «BadAuthentication».

Надеюсь, у кого-то есть представление о том, что я делаю неправильно. Обратите внимание, что это работает, когда я захожу с обычной учетной записью Google.

Вот фрагмент моего кода:


GDataGAuthRequestFactory authFactory = new GDataGAuthRequestFactory("lh2", _appName);
authFactory.AccountType = "HOSTED_OR_GOOGLE";

_picasaService = new PicasaService(authFactory.ApplicationName);
_picasaService.RequestFactory = authFactory;

_picasaService.setUserCredentials(username, password);
return _picasaService.QueryAuthenticationToken();

Ответы [ 2 ]

1 голос
/ 19 мая 2009

Немного поиграв, я сменил AccountType = "GOOGLE", и это сработало.

Думая об этом, это имеет смысл. Я создал учетную запись, используя существующий адрес электронной почты. Поэтому в этой ситуации я входил в учетную запись Google, а не в размещенную учетную запись.

Изначально я не указал RequestFactory, поэтому код выглядел следующим образом:


_picasaService = new PicasaService(_appName);

_picasaService.setUserCredentials(username, password);
return _picasaService.QueryAuthenticationToken();

Это может привести к ошибке «Недопустимый пользователь». Первоначально я думал, что мне нужно будет установить AccountType = "HOSTED_OR_GOOGLE", чтобы это заработало. У меня было это в моей голове. Поэтому я добавил RequestFactory, думая, что это решит мои проблемы.

Просмотр документации для GDataGAuthRequestFactory . В нем говорится, что AccountType по умолчанию равен "GOOGLE_OR_HOSTED", поэтому я попробовал этот код:

GDataGAuthRequestFactory authFactory = new GDataGAuthRequestFactory("lh2", _appName);
authFactory.AccountType = "GOOGLE_OR_HOSTED";

_picasaService = new PicasaService(authFactory.ApplicationName);
_picasaService.RequestFactory = authFactory;

И это работает. Я должен сделать вывод, что задокументированное значение по умолчанию для AccountType из "GOOGLE_OR_HOSTED" не является правильным.

0 голосов
/ 23 апреля 2010

HOSTED означает учетную запись Google Apps, GOOGLE означает учетную запись Google. Вы должны решить сами, это не совсем ошибка в документации ..

...