0

我正在编写一个小型 java 安装应用程序,它将在桌面上运行,以与谷歌融合表交互,但我不断收到 401 未经授权的错误。这是我用来连接和查询表的代码:

/** Global instance of the HTTP transport. */
private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
/** Global instance of the JSON factory. */
private static final JsonFactory JSON_FACTORY = new JacksonFactory();

private static void insertData(String query) throws IOException {
    BasicAuthentication credential = new BasicAuthentication(username, password);
    fusiontables = new Fusiontables.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential).setApplicationName(
            "Google-FusionTablesSample/1.0").build();
    Query q = fusiontables.query();
    Sql sql = q.sql(query);

    try {
        sql.execute();
    } catch (IllegalArgumentException e) {

    }
}

该表是在我的帐户中创建的,并且我正在使用我的帐户的用户名和密码,所以我知道这并不是我使用了错误的登录信息。这是我第一次使用 java 和 oauth 做任何事情,所以任何人都可以帮我弄清楚我在这里做错了什么吗?

4

1 回答 1

0

您似乎正在进行基本身份验证(即在每个请求中清楚地发送您的用户名和密码),这根本不是 OAuth。我认为融合表 API 不支持基本身份验证。

这是 OAuth 2 文档: https ://developers.google.com/accounts/docs/OAuth2

对您的密码要非常小心,不要在 API 调用中发送它。

于 2013-08-21T22:18:17.100 回答