gpt4 book ai didi

java - 未经授权收集Google表格信息

转载 作者:行者123 更新时间:2023-12-01 09:42:37 26 4
gpt4 key购买 nike

如何在不让用户进行任何身份验证的情况下,从公共(public) Google 表格文档中正确收集 Google 表格信息?

到目前为止,我发现以下代码看起来应该可以解决问题,但我却陷入了困境

“com.google.gdata.util.AuthenticationException:身份验证时出错(检查服务名称)”

下面的代码生成它,用户登录名和密码正确

package streamupdater.util;

import com.google.gdata.client.spreadsheet.SpreadsheetService;
import com.google.gdata.data.spreadsheet.ListEntry;
import com.google.gdata.data.spreadsheet.ListFeed;
import com.google.gdata.data.spreadsheet.SpreadsheetEntry;
import com.google.gdata.util.ServiceException;

import java.io.IOException;
import java.net.URL;


public class readData {

public static final String GOOGLE_ACCOUNT_USERNAME = "abc";
public static final String GOOGLE_ACCOUNT_PASSWORD = "xxx";

public static final String SPREADSHEET_URL = "https://docs.google.com/spreadsheets/d/1fS0d19BOExTPdWqIYTvD9IskGIYEskqPY0WL9i7FByk/edit#gid=0";



public String getData(){
String status="";

try{
/** Our view of Google Spreadsheets as an authenticated Google user. */
SpreadsheetService service = new SpreadsheetService("Print Google Spreadsheet Demo");

// Login and prompt the user to pick a sheet to use.
service.setUserCredentials(GOOGLE_ACCOUNT_USERNAME,
GOOGLE_ACCOUNT_PASSWORD);

// Load sheet
URL metafeedUrl = new URL(SPREADSHEET_URL);
SpreadsheetEntry spreadsheet = service.getEntry(metafeedUrl,SpreadsheetEntry.class);
URL listFeedUrl = spreadsheet.getWorksheets().get(0).getListFeedUrl();

// Print entries
ListFeed feed = service.getFeed(listFeedUrl, ListFeed.class);

for (ListEntry entry : feed.getEntries()) {
System.out.println("new row");
for (String tag : entry.getCustomElements().getTags()) {
System.out.println(" " + tag + ": "
+ entry.getCustomElements().getValue(tag));
status=entry.getCustomElements().getValue(tag);

}
}

}catch(Exception e){
System.out.println(e);
}
System.out.println(status);
return(status);
}

public static void main(String[] args) {

readData rd = new readData();
rd.getData();

}

}

最佳答案

使用登录名和密码访问私有(private) Google 数据称为客户端登录。 Google 于 2015 年 5 月关闭了客户端登录服务器。您的代码将无法工作。您将需要使用开放身份验证。

建议:

  1. Switch to Google Sheets v4
  2. 尝试使用 API key 进行身份验证。它应该让您可以访问公开的 Google 表格。另一种风险较小的方法是使用服务帐户访问私有(private) Google 工作表。

关于java - 未经授权收集Google表格信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38343594/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com