0

我从以下位置获取示例代码:

https://developers.google.com/shopping-content/developers-guide-dotnet

ContentForShoppingService service = 
    new ContentForShoppingService("ContentForShopping-Sample");
service.setUserCredentials(GoogleUsername, GooglePassword);

service.AccountId = GoogleAccountID;

我还使用了来自https://code.google.com/p/google-gdata/source/browse/trunk/clients/cs/samples/contentforshopping_sample/contentforshoppingsample.cs?r=1067的示例代码

我正在使用 Google 商家电子邮件地址/密码和商家 ID 进行上述操作。然后,我使用以下方法找到我们的一种产品:

entry = service.Get("en", "gb", ProductID);

这在我的本地服务器上运行良好。然后我可以通过操作其属性来更新产品,然后调用:

service.Update(entry);

现在,问题是当我在我们的实时服务器上运行它时它失败了:

Exception Details: 
    Google.GData.Client.InvalidCredentialsException: Invalid credentials

相同的凭据在一台 PC 上运行而不在另一台 PC 上运行的原因是什么?

我应该使用其他方法来提交我的凭据吗?我发现替代方法令人困惑,并且找不到其他专门用于ContentForShoppingService.

  • 本地 PC 正在运行 Windows 7
  • 有问题的实时服务器正在运行 Windows Server 2008 R2

更新

我采用了相同的代码并将其放入 Windows 窗体应用程序中。这个应用程序在我尝试过的所有其他机器上运行良好,除了我们使用的实时服务器。这会让我觉得这是某种安全软件/防火墙问题......

有任何想法吗?!

4

2 回答 2

2

我有完全相同的问题,我通过启用两步验证解决了它。这里的文章中提到

总结这篇文章,转到:

  1. https://support.google.com/accounts/answer/180744
  2. 启用两步验证
  3. 输入您的信息
  4. 输入您的应用名称
  5. 生成您的应用密码
  6. 在您的代码中替换您的密码

祝你好运 :)

于 2014-06-23T01:54:36.647 回答
1

通过以下方式解决了这个问题:

https://security.google.com/settings/security/activity?hl=en_GB

Google 似乎试图了解哪些 IP 地址适合您的应用。尽管我说被阻止的地址很好,但它们仍然被阻止。

在此处输入图像描述

解决方案是转到实时服务器,在那里打开一个浏览器,然后在那里登录 Google 帐户。由于您是在该 IP 地址进行物理登录,因此 Google 知道该地址不可疑。

于 2013-11-01T15:19:46.050 回答