【问题标题】:Google Contact API ErrorGoogle 联系人 API 错误
【发布时间】:2012-11-25 13:37:49
【问题描述】:

我正在使用 Google Contact API 通过 java 访问我的联系人。我正在为此使用我的 gmail 帐户。我的帐户有双向密码验证。所以我写了一个示例程序来显示标题。但我收到了类似

的错误

线程“main”中的异常 com.google.gdata.client.GoogleService$InvalidCredentialsException: 无效凭证在 com.google.gdata.client.GoogleAuthTokenFactory.getAuthException(GoogleAuthTokenFactory.java:600) 在 com.google.gdata.client.GoogleAuthTokenFactory.getAuthToken(GoogleAuthTokenFactory.java:500) 在 com.google.gdata.client.GoogleAuthTokenFactory.setUserCredentials(GoogleAuthTokenFactory.java:346) 在 com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java:362) 在 com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java:317) 在 com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java:301) 在 com.contact.manager.Create.createContact(Create.java:15) 在 com.contact.manager.Create.main(Create.java:26)

我的代码:

public class Create {

    public void createContact() throws IOException, ServiceException {
        ContactsService contactsService = new ContactsService(
                "mine-MyProduct-3");
        contactsService.setUserCredentials(username,
                password);
        URL feedUrl = new URL(
                "https://www.google.com/m8/feeds/contacts/{EmailID}/full");
        ContactFeed resultedFeed = contactsService.getFeed(feedUrl,
                ContactFeed.class);
        System.out.println(resultedFeed.getTitle().getPlainText());
    }

    public static void main(String[] args) throws IOException, ServiceException {
        Create create = new Create();
        create.createContact();
    }
}
  1. 当时我正在为我的帐户使用两步身份验证,但出现这样的错误。
  2. 使用普通帐户(我的意思是一步验证)时,我没有收到任何错误。

在进行两步身份验证时是否有任何特殊的方法来进行身份验证。 你能帮忙吗?我卡在这里了。

【问题讨论】:

    标签: google-contacts-api


    【解决方案1】:

    正如 Google 在两步文档中明确指出的那样,您不能使用常规密码访问 API。

    相反,您应该使用 OAuth 2。
    或者,您可以创建应用专用密码。

    【讨论】:

    • 您好,感谢您的回复。我不明白应用程序专用密码是什么。如何创建该密码。您能否提供我如何使用 OAuth2 身份验证进行身份验证。如果您提供任何示例代码,它对我更有帮助。
    • 您能否提供解决 Contact API 错误的示例代码。我检查了上面的链接,但不明白。
    • @Shailesh:你不明白什么?
    • @SLaks:我已将此代码用于获取联系人,但我在哪里可以传递 OAuth String url = "google.com/m8/feeds/contacts/default/full" 的客户端 ID; ContactsService 服务 = new ContactsService("ContactsSample");尝试{ service.setUserCredentials(用户名,密码); } catch (AuthenticationException e) { e.printStackTrace(); }
    【解决方案2】:

    试试这个!我希望它会有所帮助。当 API 请求失败时,HTTP 将返回 4xx 或 5xx 响应代码,一般标识失败,以及 XML 响应,提供有关导致失败的错误的更具体信息。

    【讨论】:

      猜你喜欢
      • 2017-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-11
      • 1970-01-01
      • 1970-01-01
      • 2012-11-24
      相关资源
      最近更新 更多