使用Google App Domain登录的Picasa网络相册Data API的ClientLogin

时间:2009-05-19 02:16:49

标签: c# picasa google-data

我正在使用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();

2 个答案:

答案 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帐户。 你必须自己决定,这不是文档中的错误..