Java 言語で Fusion Table SQL API を使用しており、アプリケーションは Google App Engine でホストされています。アプリケーションは、Java 言語によって融合テーブルにレコードを追加および削除しています。しかし、Fusion Tables SQL API は 2012 年 6 月 26 日に正式に廃止され、2012 年 12 月 26 日に廃止されます。そのため、Fusion Tables SQL API を新しい API に移行する必要があります。
私の質問は、Fusion Tables SQL API を Java の新しい API で移行する方法です。
私の現在のスクリプトは
import com.google.gdata.client.ClientLoginAccountType;
import com.google.gdata.client.GoogleService;
import com.google.gdata.client.Service.GDataRequest;
import com.google.gdata.client.Service.GDataRequest.RequestType;
import com.google.gdata.util.AuthenticationException;
import com.google.gdata.util.ContentType;
import com.google.gdata.util.ServiceException;
import java.io.IOException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Scanner;
import java.util.regex.MatchResult;
import java.util.regex.Pattern;
public class SampleProgram {
private static final String SERVICE_URL = "https://www.google.com/fusiontables/api/query";
private static final Pattern CSV_VALUE_PATTERN = Pattern.compile("([^,\\r\\n\"]*|\"(([^\"]*\"\")*[^\"]*)\")(,|\\r?\\n)");
private GoogleService service;
public SampleProgram(String email, String password) throws AuthenticationException
{
service = new GoogleService("fusiontables", "fusiontables.ApiExample");
service.setUserCredentials(email, password, ClientLoginAccountType.GOOGLE);
}
public String GetrunSelectQuery(String selectQuery) throws IOException,ServiceException
{
URL url = new URL(SERVICE_URL + "?sql=" + URLEncoder.encode(selectQuery, "UTF-8"));
GDataRequest request = service.getRequestFactory().getRequest(RequestType.QUERY, url, ContentType.TEXT_PLAIN);
request.execute();
String decoded="";
Scanner scanner = new Scanner(request.getResponseStream(),"UTF-8");
while (scanner.hasNextLine()) {
scanner.findWithinHorizon(CSV_VALUE_PATTERN, 0);
MatchResult match = scanner.match();
String quotedString = match.group(2);
decoded = quotedString == null ? match.group(1): quotedString.replaceAll("\"\"", "\"");
}
return decoded;
}
public static void main(String[] args) throws ServiceException, IOException
{
String tableEncryptedID="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
String sEmailId="XXXX@XXXXX.com";
String sPassword="XXXXXXXXX";
SampleProgram obj = new SampleProgram(sEmailId, sPassword);
System.out.println(obj.GetrunSelectQuery("select name from "+tableEncryptedID+" limit 1"));
}
}