我正在使用Picasa网络相册数据API从WPF应用程序访问用户的相册。
我已按照此处的代码操作: http://code.google.com/apis/gdata/clientlogin.html
我创建了一个包含Google Apps(托管)帐户的Picasa网络相册帐户。每当我尝试使用我的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();
答案 0 :(得分:1)
在玩了一下之后,我改变了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"
的文档默认值不正确。
答案 1 :(得分:0)
HOSTED
表示Google Apps帐户,GOOGLE
表示Google帐户。
你必须自己决定,这不是文档中的错误..